add calling step by step