Refactor code and change file structure

Change-Id: I60282c85d27845b1ba6d0ac660fc9e8067b43c71
Refactor, rename, and cleanup

Change-Id: I4e96a178bae9f4732c4b87dd4f25cfaf6f6829ab
Start testing

Better late then never...

Change-Id: If7677788c6cb6c7ff609c93dbeef31704187955f