API DESIGN IN C++