refactoring interface, not finished.
added new download_info.

This file will be used to wrap metada and real data.
API refactored.
Merge branch 'dev' -- refactor complete.