Added progress callback support (upload/download)