Restructured file layout.
Major code refactor. Better encapsulation and abstraction.
Updated readme. Version bump.