revise param constructor