swap other adhoc non copyable stuff for the more verbose boost::noncopyable
added a cycle test, although not yet detected