need to implement controller, input, and player data