Test passer ( alpha )

This version is passing the unit tests but still needs some work