changed protocolfinder to have larger scope to it can cache the schemes