add Do function