Main Solutioin