Implement HW3