Refactored the code (decomposed the step of the iterative learning algoritm into a configurable pipeline). Implemented querying and the update based on the score difference between the current and the best next node.
Merge branch 'refactoring-multiple-update-conditions' into develop