Major Overhaul

Change-Id: I44055cf9d28d573c89912ce49fe29c90f4243852