Refactored the iteration of rules so that now, it should really be evaluated sequentially with ability to interrupt the iteration when halt on first (true/false) or when there are errors. Need more unit tests around it.