major change, now use asts to find functions, works, time to make pretty!

more documentation coming when I clean this up even more