Major Overhaul

Change-Id: I3e15f22caf95b52e00cc5a04c82ad8cd085469d3