polymorphic question w/r/t acts_as_taggable plugin use

I've been using the acts_as_taggable_on_steroids plugin successfully
for awhile with models descended directly from ActiveRecord, but just
ran into something strange in a new use case where I have models that
are subclasses of other models.

I'm looking for an explanation and a workaround or correction to the
way I'm doing things and it occurs to me that someone may have an
answer if they have good knowledge about rails' polymorphic operation
OR about the way acts_as_taggable works...

Here's my problem -

1) Models -

class Group < ActiveRecord::Base

class Circle < Group

class SupportCircle < Circle

2) I have Circle declared as acts_as_taggable

3) when I tag a Circle, the 'taggings' table record for it has 'Group'
for the 'taggable_type' column

Q1: why isn't it 'Circle' for the 'taggable_type'?
Q2: where in the code is this assignment of the value done? (I can't
seem to find it and assume it's some "under the covers" magic that
Rails is doing...?)

4) acts_as_taggable.rb's 'find_tagged_with' method does the query
with a join that has this fragment:

AND #{table_name}_taggings.taggable_type = '#{name}'

So, when I do a search for Circle objs tagged with a tag, it fails to
find those tagged objs because when I call
Circle.find_tagged_with(tag), the 'name' is coming in as 'Circle'
while the entry in the table is 'Group' as described above.

Q3: why is the search value inconsistent with the 'tagging' insert's
assignment of value for 'taggable_type'?

5) I want to start tagging SupportCircle's and not sure of a few

Q4: with an acts_as_ declaration, do I need to explicitly declare that
in a subclass or will SupportCircle be taggable because Circle is
declared so?
Q5: if I want to distinguish between Circles and SupportCircles in my
searches, I do separate calls for each with
Circle.find_tagged_with(tag) and SupportCircle.find_tagged_with(tag)
respectively, and from the look of that query, I'll *only* get Circles
from the first and SupportCircles from the second, right? (yes, I
think... just checking 'cause of the unexpected behaviors I'm seeing)