initial recurse branch commit. function def.
recursion working, some bandaid fixes that should be fixed if time