added dynamic function dispatcher
function dispather merge