Tidy code up more
Add noncopyable
More tidy up