All transformer refactor

This makes each step a transformer in of itself, plus some other minor api-related changes (some related, some not)