final version 2.0