New Version with linq