Added API's and made and corrected the simpleimpl implementation.
Some changes so that tests can be done.