created new interface to handle listeners