robustness changes

* utilize the skip() macro to report  them as skipped when necessary
* moved some code inside conditional branches to make it more robust in
case of errors