change serializer interface to simplify implementation
allow for different serialization representations
fix serializer