1. removed recursion on wait
2. reversed telescope structure (instead of invoking the method with
more params, invoking the one with less params
3. throw timeout exception when time out
4. use AssertionListener in assertion methods -
FailSafeAssertionListener is now usable