try to learn the spirit.
Add some test.
add action.
typedef in inheritance