Implemenation of a Batcher API

This is a pass at flushing out an API and implemenation for #107.