added soft limits