done with solution with reference