output call back implementation