rules evolution implementation