solution 1.2 do not forget the specialcase checking