continued refactoring player, added gravity