Major Overhaul

Change-Id: If74c85f351f91931a0baf59672cb7f65d9a35023