v2.0 with print