Energy harvesting and storage