partial implementation of scene graph