@zmoazeni getting rid of the position argument API will clean up a lot of the code in this PR. As far as "I'm not in love with this pattern" did you mean the adapter pattern or my use of `#method_missing` to implement it? Happy to fix if you have a better suggestion for either.