initial version supporting fork := true