Massive refactor, make classes such, split static declarations out into top level .kt files where possible, refactor in memory storage for testing into a single class implementing all interfaces, cleaned up namespaces.