listeners: init with local values
implement listener callback