fix bug: if ds