finish all
checked with solutions