implement stepwise execution. #13