Removing superflous returns. adding move assignment for completeness