added challenge solution