First Commit

Laying out the base design of interface and classes, along with a simple
test.