Energy Generation and storage