Major Code Update - See Commit Comments

Major Code Update - See Commit Comments