added IRequestModel interface to remove the confusions