Properly implemented getTags should create a copy of tags so that fiddling with the returned value doesn't affect the object.