refactored to use parameter