Fix for #31 and refactoring to use explicit types for data and download classes.

This is how it looks:

![image](https://f.cloud.github.com/assets/1428171/921922/8a194974-ff10-11e2-95a7-a316b048df87.png)