Integrated the v2 classes into program. Saved them over the v1 files.
Still need to redesign test.
Revert "Integrated the v2 classes into program. Saved them over the v1 files."

This reverts commit 07acc1156451f2d2de486b31e8284046e344d1d7.
Revert "Revert "Integrated the v2 classes into program. Saved them over the v1 files.""

This reverts commit 695a22ac109a0dcf868c837438584a1a20c8691f.