---------- FINAL VERSION---------