Thin Film Solar Cells With Earth Abundant Elements: From Copper Zinc Tin Sulfide To Organic-Inorganic Hybrid Halide Perovskite