refactors parameter middleware