only returns first function match