modify generating label filter
implement ForkNode()
add test