Use a method for the initial argument swapping.
Provide direct access to the methods, unasociated to an element.

Should only be used in rare cases.
Add a reset method and make tests use it.