Class updates, refactoring, docs