create common interface for download manage