Refactor product factory and section finding

Only one pass to find section = better perf.