created as per sassignment's specification