added callback symantics to compile