add protocol selection prefernce, catch exception, on error display actual error and more