Initial commit

Porting all the code from Qiita and extending the tests.
Any other error besides not being able to fetch. Probably best to catch and raise for consistency reasons.