Version 1: updated after lab 2 ended.