remove fireWhenReady timeout, and use script loaded event