added rule interface