add on_commit hook
add on_commit hook and stubs
all tests except user passing