Major Overhaul

Change-Id: If1d972f92c915c383c553d6a2d69a8753cb3f9d4