typedef callbacks added