Adding implementation and Unit test for implementation