add onloaded event, add loaded prop, add isReady prop
properly display loading text
use guid rather than plain number, to make sure it is truely multi-instance-able