added serializer interface & abstract class