fix swap to check full mutability