CodeGuru engine updates

here is the engine new features, in a more logical way. I hope it works...
The new changes are starting after the commit described as "In order to make the changes checking easier."