Factor out the code that actually transmits files.
Move the core handler types to the top level package.
Introduce an Objects interface that provides runtime access to all of the objects registered with Guice.

I'm not crazy about the name, but I can't come up with anything better.
Implementation should be internal.