added data classes and renamed stuff