product using higher oder functionf