add solutions for hard challenges