give ID to all instances; address events to specific instances.
add progress callback.