removed redundant product function