implemented most of the basic article functionality