Finished with task 3,4,5 implementation