API improvements

Update, add, delete where checked and tests added. Exceptions module was created.
Update, semantically should not have to deal with the directory.