Added generics to Products, and Started on recipe factory