overhauled parameter handling