Cleanup, refactor, add power source obj