more tests
more tests
rename update() to .after() . add before() and some tests
more test, change .before() behavioe
refine .before() interface, test more
add document for .before() and .after()