100% polymorphism problem, hmm not so sure.

I have a problem to break down and implement.

At first look it seems, as if it should be done in polymorphic way. I
imagine it as having this "abstract" class model Thing and then many
many many different concrete_thing_types. My doubt is though - I am
not really able to tell now what and how many of those different
concrete_thing_types there will be. There may be "hundreds" of them
and during the application's lifecycle, that set will probably expand.

Any suggestions then?