make onReady always async