method to calculate products diagonal up functional, needs refactor