mazalak 2

Change-Id: I1ffb0638d7722254e0fdc33875f1c31484e9adfe
major refactoring

Change-Id: Iedc683a13a2adf15163d00f2a71e1382246aad08