assignment1_without_iterator && assignment2