updated UnitController to serve as a true abstract for PlayerController