Added stack to handle looping.  Starting, with it, moving stuff to nested classes to cleanup close and keep it togethor