add idiff; change the style to object; add extend for common part