Solar cells and their applications