Untangle snapshot mapper

Also fixed performance issue with `StructEncoding` arbitrary
I can, i just though it was slightly less performant passing a function around then having the implementation in a defined class. Maybe i don't understand this enough