Add DVT framework. Change undo strategy

Signed-off-by: onevcat <onevcat@gmail.com>