noncopyable update