add optional onRequest function
0.1.0