swap first. fetch later