Add FuncType and clean up a bit