Big refactoring

The way I used to compute the different properties effect wasn't
efficient in the way that it was impossible to get global properties.
Now it's better