properly define and evaluate rules