refactor parameterize