Adding first try implementation.
Adding test case implementation.
merge rpowell changes