add base Do() method