Major Overhaul

Change-Id: I93da838f8a2d06f1e9d1e809584244d0d30b159b