Refactor - add abstraction
Global refactor
Added Power management system