Refactors code and adds unit tests

Change-Id: Ia14034679af8fc7e9ac91a1bfb766e4b99ec9e39
Signed-off-by: Benjamin Diaz <bdiaz@whitestack.com>
32 files changed