Final version without comments.