pass is not always required, leave empty