Add make scripts.
Add new dependencies, update existing ones.
Fix code samples.
Refactor the module.
Add full test coverage.
Merge pull request #1 from gergoerdosi/refactor

Refactor