final version corrected v2.0