added classes and initial integration