made GameObject abstract and cleaned up some