use parameter passing instead of esacping