Even more refactoring introducing the observable pattern to make it easier in the future to add new methods that analyse new patterns.