Initial code commit. Should be working, but completely untested. Need to write tests still and update the README with a usage example.