Better primary swap