How to build a Download system?