add some callback advanced function even if I dont like the way I do it