move the messaging stuff to a new 'experimental' package
add some experimental signal handling stuff
add channel experiment