use progress Listener instead of dom events