Change up selecting in preparation for joins!
Change up tests to use assert library
Refactor public api to use interfaces