private noncopyable