add parameter logics