add onReady callback