almost, TODO:bactracking also if no possible common derivation