add json file support
provide a more flexible api
update readme
add error module for bad requests
update tests
update error classes
documentation
move require statements inside the module
update changelog