refactor factory wrapping

We don't need to inherit from the factory as long as we set
the receiver correctly when calling its functions. D'oh!