moved function from dt_product_serial for better placing
moved function from dt_product_serial for better placing