Adding Marshal and Unmarshal interfaces. Closes #35.