* [ ] Don't need to wrap in SharedPtrs * [ ] Simpler way to handle errors (maybe some `DESERIALIZE` macro)
DESERIALIZEmacro)