tidy
move
move
refactor - use recursion, its cleaner