add transaction model, generic dao & manager, impl