CM_WP_Base::__construct() should be protected visibility.

This uses static factory classes to create objects.