func info state added
handle decl updated to use new monad
flushed out the rest of the expressions