make compilation database a struct