moved methods and made abstractings more abstract, preparing to remove player class