a bit of comments for auto polymorphic