added classes and methods