changed names of abstract classes and changed get methods