refactor

to add polymorphic support for circles etc..
support text
support groups
support ellipse
docs