add present utility
fix errors with `utils.extend`
partial implementation of matcher
change schema/transaction to _schema/_transaction
add `update` and `destroy`