Currently we have 5 separate SP implementations. I was thinking that for the NuPIC community, we just need two: the C++ Spatial Pooler (which should be the default) and the Python Spatial Pooler which would be optional.  The rest can be eventually deleted or moved out of NuPIC.  Under that scenario, the spatialImp selector is only needed to select the python one.   I wasn't trying to match class names, just specify CPP vs PY (but 'cpp' and 'py' were already taken).  I could rename SpatialPooler to CPPSpatialPooler to be more descriptive.