Version with basic unit testing