i'm coding game engine , i'm creating resource base classes such vertexes, textures, fonts, etc. now i'm creating basic classes want exposed programmer uses these base classes, such image (uses textures), text (uses fonts), models (uses vertexes) etc the game engine exposed, can call it's functions , such coding game. but don't want them access base classes @ all, , don't want conflict classes well. example, might want create class named "material" ingame resources have "material" class, how can avoid conflict , better, hide these base classes (so don't mess , break something)? edit: example, have exposed class image . contains private instances of quad , texture base classes, , resource manager makes sure there's 1 of these loaded (so don't have duplicate textures/quads in memory). texture has width/height, , manages data loaded card. same quad . image makes sure when image resize requested, changes needs cha...