Added unit tests and inital code