Major Overhaul

Change-Id: If3f88903d0071d8b67aa46c64148b5a4ac3d7fd6