support for noncopyable types