refactored Person model