RB: Add constructor to Product class
RB: Some refactoring and implement the first remnants of matching.