Progress fleshing out the core interface and the unit tests.