fixed how nodes are represented internally. with alot of helper functions and mutexes