Refactor Product