Non-Recursive paths.

Changed recursive paths to redundant, ArrayList paths to increase speed
at a (hopefully) small memory cost.