Added progress callback