more solutions and corrected minor mistakes