adds classes and basic functionality