Completely restructured the library. Once I get this working it will be considered a major revision.