feature(util) mv addListener, removeListener from cloudfunc