Initial version of assignment 2