implemented product creation