Version with working Unit tests