Rollback some changes

This pull request is the same pull request #66 minus fa262d8, 40eb599 and d0d0bab.
In d0d0bab I returned back the code related to calling throw.
For more details see diff and comments in #66