moved product struct out of class