Initial work towards allowing Custom Serializers

This is a work in progress