added polymorphic comments, lots of cleanup