alpha implemenation ready.
alpha implemenation ready.
working implemenation and test case