improve forum function