http://stackoverflow.com/questions/3106110/what-are-move-semantics