fix swap to check full mutability
Use allMutableFields