Structure and code changes

Change-Id: I2df520afc0989db8f86fdeee93b9062da0422a7b