use _fireWhenReady