1. since we don't just support spying anymore i took the liberty to remove "spy" and rename a few classes
2. documented complex  logic
3. did a little refactoring and moving around a few classes
4. fixed issue with test classes when they lack @SUT annotation failing and also added a unit test for it.