More rules + refactoring - similar rules brought out separate methods.