add base abstract module