algorithm parameters refactored