refactored Person class