better parameter parsing