Cleaner move ctor and assignment