added more control
merged controlledproduct