Refactored transports and queues and backends so they can be pluggable