Added move constructor, fixed sort, changed assignment= to use swap instead.