improve speed, what about memory?
first auto rule implementation, stay on target