Assignment2 Part2

All is finish except tests