refactored: moved poduct code to sep file