Add a fricking ton of energy abstraction and finish the deenrgizer energy implementation
Fixed #6