loops are better than recursion, done