Add separate interface for SceneNode, refactored code