finalized v2.0