make arguments noncopyable