more organizing the code to support a scene tree (wip)