Add a 'general' unit tests file

This 'general' unit tests is responsible for all
miscellaneous/general functionalities
Add unit tests

Other changes:
* Update README with more code examples
* Fix minor bugs
* Minor code refactoring