for non fork use origional