adding new solution
improving solution