Major Overhaul

Change-Id: Ic2a94010f0bcd37607d0a380d6b53580c073ac54