don't rely on load event (chrome doesnt fire it)