final

Final version including comments.