Engine and UserInterface classes finished refactoring and documentation finally