changing folder structure, adding error handler, docs, tests, and readme