implement code generation
implement CanMerge() which control if an element can be added into another element
handle delete propagation
add validation to table
use different tag name for body container of table row wrapper