finally understanding the role of callbacks in program flow