Sir trevor refactor

@jkeck can you give this a good test?