First iteration: add base and error serializers