Major Overhaul

Change-Id: I87002f0694a0a95a72e157d1a9bc1e417f8a3367