add base struct