The code here is similar to [the code I commented on earlier](https://github.com/radar/spree/pull/10/files#r6145609). We might be able to make this simpler and require less hoop jumping.