Tailoring functional Π-conjugated polymers and molecules for organic photovoltaic applications