new function, substitute()