improve parameter handling