spray integration (#3): add unmarshalling helper, restructure package