changed api, added ability to enable and disable listeners