add walk through algorithm