energy generation and storage