Continue to re-work API, add in more tests.