Several changes:
- restructured code by Tim Oxley
- added test cases by Tim Oxley
- moved documentation in comments to separate files
- refined documentations; and
- removed node_modules