renmae efunc to elementfunc, func to arrayfunc