separate some functions in products module