Very close

This may not be perfect (not fully tested) but initial tests look good.
Added more verbose printing

Shows publisher.volume now