diff --git a/ui-react/src/index.js b/ui-react/src/index.js
index fed8c0f..53d3698 100644
--- a/ui-react/src/index.js
+++ b/ui-react/src/index.js
@@ -1,44 +1,28 @@
+/*-
+ * ============LICENSE_START=======================================================
+ * ONAP CLAMP
+ * ================================================================================
+ * Copyright (C) 2019 AT&T Intellectual Property. All rights
+ *                             reserved.
+ * ================================================================================
+ * Licensed under the Apache License, Version 2.0 (the "License"); 
+ * you may not use this file except in compliance with the License. 
+ * You may obtain a copy of the License at
+ * 
+ * http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing, software 
+ * distributed under the License is distributed on an "AS IS" BASIS, 
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 
+ * See the License for the specific language governing permissions and 
+ * limitations under the License.
+ * ============LICENSE_END============================================
+ * ===================================================================
+ * 
+ */
 import React from 'react';
 import ReactDOM from 'react-dom';
-import './index.css';
-
-class UserBar extends React.Component {
-	render () {
-		const user = this.props.user;
-		return (
-			<div className="user_name">Hello:{user}
-			</div>
-		);
-	}
-}
-
-class ClampLogo extends React.Component {
-	render() {
-		return (
-			<div className="col-md-4 col-lg-4">
-				<img className="image_style" alt="" src={require('./images/logo_onap_2017.png')} 
-				height="50px"
-				width="234px"/>
-				<div className="navbar-brand logo">
-					&nbsp;&nbsp;
-					<b>CLAMP</b>
-				</div>
-			</div>
-		);
-	}
-}
-
-class ClampHeader extends React.Component {
-	render() {
-		return (
-			<div className='rowC'>
-			<ClampLogo />
-			<div className="dummy"></div>
-			<UserBar />
-			</div>
-		);
-	}
-}
+import ClampHeader from './ClampHeader'; 
 
 ReactDOM.render(
 	<ClampHeader />,
