a more consice solution