Initial version of assignment 3