TODO: we should parse the contents of the article here before appending categories just in case categories have changed in the meantime.