added subclasses and renamed file