added rule builer