Text this: Data abstraction & problem solving with C++ : Walls and mirrors