Final version with Junit Test(Final to from mine point of view))))