Add Publisher and other tests, add Delivery builder
Move Listener to AbstractListener and use Listener as an implementation for payload handling
Complete redesign