added surface node class, working on porting code to use scene graph
traversal