add base data struct