widget is abstract
removed world and camera attribute in GameObject; world is recursively given to each object that needs it and camera is hold by world (there is no camera without a world and no world doesn't have a camera)