update of IEnergy and lot of refactoring following that step <- not even
completed