Separate swap and set event