implementing requirement #8