Fix deserialization recursion
Add overview, example, and beginnig of API docs