Using C++ type syntax

Better than typedefs, I suppose
Minor changes

Changing the main surface member's name for disambiguation
Setting up Map members for the actual mapping later on.