added node expand and contract