Player object refactor