refactored human player