Initial commit for part3
Pass all sample test
Finish part 3