Add NonCopyable and correct inheritence