better param passing