Added skelton style implementation and tests