comment framework