Major Overhaul

Change-Id: I90463aea0b19b168b820c6d46d89fa44bd7adcf5