function decl handling wip mess