Assignment 2: initial version