added all remaining classes and methods