Rewrote Noncopyable because license
Removed RefCounted because license. Replaced with ThreadSafeRefCounted because on threads ref and deref shouldn't be called except on deletion of nodes