Separating interfaces to individual files. Reorganizing classes in new packages.
Update readme and preparing to version 1.1