First version along with a sample unit test