Smart completion: code improvements and refactorings after code review
Smart completion: refactored all code into a class to avoid passing the same data into many functions