Merge func.go back into extract.go