add material function