First thoughts, not totally sold on using Object here. I'd like it if there were an easy way to wrap the output of the serializer in a common class. I'll revisit this comment after reviewing the rest of this PR.