adding some more classes and an op listener