updated v2.0 code