Final version. All traces passed