diff --git a/ui-react/src/LoopUI.js b/ui-react/src/LoopUI.js
index bf1e419..b8fbe89 100644
--- a/ui-react/src/LoopUI.js
+++ b/ui-react/src/LoopUI.js
@@ -40,7 +40,7 @@
 import OperationalPolicyModal from './components/dialogs/OperationalPolicy/OperationalPolicyModal';
 import ConfigurationPolicyModal from './components/dialogs/ConfigurationPolicy/ConfigurationPolicyModal';
 import LoopPropertiesModal from './components/dialogs/Loop/LoopPropertiesModal';
-import UserInfo from './components/dialogs/UserInfo';
+import UserInfoModal from './components/dialogs/UserInfoModal';
 import LoopService from './api/LoopService';
 import ViewToscaModal from './components/dialogs/ViewToscaModal/ViewToscaModal';
 import PerformAction from './components/dialogs/PerformActions';
@@ -254,7 +254,7 @@
 				<Route path="/configurationPolicyModal/:componentName" render={(routeProps) => (<ConfigurationPolicyModal {...routeProps} loopCache={this.getLoopCache()} loadLoopFunction={this.loadLoop}/>)} />
 				<Route path="/openLoop" render={(routeProps) => (<OpenLoopModal {...routeProps} loadLoopFunction={this.loadLoop} />)} />
 				<Route path="/loopProperties" render={(routeProps) => (<LoopPropertiesModal {...routeProps} loopCache={this.getLoopCache()} loadLoopFunction={this.loadLoop}/>)} />
-				<Route path="/userInfo" render={(routeProps) => (<UserInfo {...routeProps} />)} />
+				<Route path="/userInfo" render={(routeProps) => (<UserInfoModal {...routeProps} />)} />
 				<Route path="/closeLoop" render={this.closeLoop} />
 				<Route path="/submit" render={(routeProps) => (<PerformAction {...routeProps} loopAction="submit" loopCache={this.getLoopCache()} updateLoopFunction={this.updateLoopCache} showAlert={this.showAlert}/>)} />
 				<Route path="/stop" render={(routeProps) => (<PerformAction {...routeProps} loopAction="stop" loopCache={this.getLoopCache()} updateLoopFunction={this.updateLoopCache} showAlert={this.showAlert}/>)} />
diff --git a/ui-react/src/components/dialogs/UserInfo.js b/ui-react/src/components/dialogs/UserInfoModal.js
similarity index 98%
rename from ui-react/src/components/dialogs/UserInfo.js
rename to ui-react/src/components/dialogs/UserInfoModal.js
index 7d81b38..1273d87 100644
--- a/ui-react/src/components/dialogs/UserInfo.js
+++ b/ui-react/src/components/dialogs/UserInfoModal.js
@@ -33,7 +33,7 @@
 	background-color: transparent;
 `
 
-export default class UserInfo extends React.Component {
+export default class UserInfoModal extends React.Component {
 
 	constructor(props, context) {
 		super(props, context);
diff --git a/ui-react/src/components/dialogs/UserInfo.test.js b/ui-react/src/components/dialogs/UserInfoModal.test.js
similarity index 91%
rename from ui-react/src/components/dialogs/UserInfo.test.js
rename to ui-react/src/components/dialogs/UserInfoModal.test.js
index beddde1..b5a2b27 100644
--- a/ui-react/src/components/dialogs/UserInfo.test.js
+++ b/ui-react/src/components/dialogs/UserInfoModal.test.js
@@ -22,9 +22,9 @@
  */
 import React from 'react';
 import { shallow } from 'enzyme';
-import UserInfo from './UserInfo';
+import UserInfoModal from './UserInfoModal';
 
-describe('Verify UserInfo', () => {
+describe('Verify UserInfoModal', () => {
 
 	beforeEach(() => {
 		fetch.resetMocks();
@@ -42,7 +42,7 @@
 	})
 
 	it('Test the render method full permission', () => {
-		const component = shallow(<UserInfo />)
+		const component = shallow(<UserInfoModal />)
 		component.setState({ userInfo: {
 			"userName": "test",
 			"cldsVersion": "1.0.0",
@@ -57,7 +57,7 @@
 	});
 
 	it('Test the render method no permission', () => {
-		const component = shallow(<UserInfo />)
+		const component = shallow(<UserInfoModal />)
 		component.setState({ userInfo: {}
 		});
 
@@ -65,7 +65,7 @@
 	});
 
 	it('Test the render method read permission', () => {
-		const component = shallow(<UserInfo />)
+		const component = shallow(<UserInfoModal />)
 		component.setState({ userInfo: {
 			"userName": "test",
 			"cldsVersion": "1.0.0",
diff --git a/ui-react/src/components/dialogs/__snapshots__/UserInfo.test.js.snap b/ui-react/src/components/dialogs/__snapshots__/UserInfoModal.test.js.snap
similarity index 97%
rename from ui-react/src/components/dialogs/__snapshots__/UserInfo.test.js.snap
rename to ui-react/src/components/dialogs/__snapshots__/UserInfoModal.test.js.snap
index 1ae567a..fdb24a4 100644
--- a/ui-react/src/components/dialogs/__snapshots__/UserInfo.test.js.snap
+++ b/ui-react/src/components/dialogs/__snapshots__/UserInfoModal.test.js.snap
@@ -1,6 +1,6 @@
 // Jest Snapshot v1, https://goo.gl/fbAQLP
 
-exports[`Verify UserInfo Test the render method full permission 1`] = `
+exports[`Verify UserInfoModal Test the render method full permission 1`] = `
 <Styled(Bootstrap(Modal))
   onHide={[Function]}
   show={true}
