new classes and api