smart parameter matching