functional picture swapping