Recreate the flat world using facets.  Reorganize facet providers into a single package, class names should differentiate enough.