Use opaque structs for btree