make _serializers and _deserializers part of instance not the module
add auto_connect __init__ parameter
tests, they are a good thing ™