Merge pull request #315 from zivchang/next

bug fixing
Apply new arg checking method in Download module

apply new argument checking method in download module
type checking: add new "Callback" type