approval logic