get rid of atimic & add noncopyable