add comment model, slightly restructure model logic