Basic rules implementation
Global refactoring