refactoring param