Add new classes and tests
Merge pull request #9 from thatscool/update-api-caller

Refactor API Caller into multiple classes, add tests