Swizzling.

Is this alright? I don't know if it would be better to make swizzleImpl a macro, but I couldn't get it to work.