refactored worldobject system