add base function.