Final version for assignment submission