factory-ize the sceneloader(partially), change the scene descrition syntax to be type strong so parsing can be more dynamic in the future