refactor product export