+ added progress listener