fixed protocol factory