Change context scope to SINGLETHREAD
Remove multimethods in favor of protocols