Use while loop instead of explicit recur and if
Move with-cleanup macro closer to -main fun
Use double semi-colons for comments