Implement factories for algorithm objects