More protection, more c++11, but something wrong in move assignment