First version Assignment2