modified most methods from async to sync calls and have proper abstraction for gameobject objects