Start of initial reference implementation and re-factored

Change-Id: I90d09331a41f15c47870cd7690b22405087ff7a4
Merge "Start of initial reference implementation and re-factored"