FINAL VERSION WITHOUT COMMENTS