magicRequestDecoder, DRYS out all the things

* stopped returning pointers to objects that should be values
* heaps more testing
* cookbook should be like 90% done