Fix typos
Rework argument passing
unmarshal to interface{} type
Add tests for unmarshaling to interface{} type