refactor to use more serializers; persist root page information