Major Overhaul

Change-Id: I093f93fa5c120f42730d51df8a6947dc386f3053