decouple parameters from algos