implement callbacks

make all the thing working