Final version (without comments)