add node types
add deepcopy interface
change stringref to string and have string's deepcopy supported