Use DaoTrait to introduce Dao capability to an object.
apply hooks first, then filters.
always pass arguments to hooks so that filters can alter any of the input value.
add a section about DaoTrait in README.