node labels
giant refactoring