I womder if we cant just reuse the DefaultPromiseListener class here and so eemove code duplication