Changed API to account for new scope of the library

With the addition of a new reader, it was necessary to add some extra
structure to the library. The opportunity was taken to modify the API.