implement requirement #7