# using inheritance to create a new Parent class

I have an algebra (and a group as well) I would like to represent in Sage. In fact, the code for doing this is already written, but the structures do not inherit from any existing Sage structures, and lately I have also been finding bugs in the algebraic manipulations. I would like to make this code compatible with the larger Sage framework by correctly using inheritance. I found this article: http://flask.sagenb.org/home/pub/82/, from which I understand that there is a way to inherit from a generic "algebra" parent and thus get a lot of bug-free structure. My problem is that this article discusses only the specific example of a field, and I don't know where to begin with my algebra. In particular, the article says, "When implementing a parent in Sage, one should start with a class that inherits from :class:`sage.structure.parent.Parent`

," - where can I find a list of such classes? The example inherits from the derived class "sage.rings.field.Field". I do not know where to find the class analogous to this for algebras (or groups). I also need lots of documentation explaining what the algebra (and group) parent comes with.

Thank you!