created new classes and domains to add new features