Initial commit

Porting all the code from Qiita and extending the tests.
btw, this then just means you need to call `execute()`