revise to ver4