Introduce some listener abstract classes