factor out parameters