setup and general idea for the gameobject interface