init time branching for avoiding unnecessary rechecking