avoid swapping as much as possible