Major Overhaul

Change-Id: I2362ec9d10f5d13ecee5403d0b676432c78cbc1d