split into separate class files; new readme