diff --git a/dox-sequence-diagram-ui/package.json b/dox-sequence-diagram-ui/package.json
index 826bc54..3aeb057 100644
--- a/dox-sequence-diagram-ui/package.json
+++ b/dox-sequence-diagram-ui/package.json
@@ -14,10 +14,11 @@
   "dependencies": {
     "d3": "^3.5.16",
     "lodash": "^4.12.0",
-    "react": "^15.1.0",
-    "react-dnd": "^2.1.2",
-    "react-dnd-html5-backend": "^2.1.2",
-    "react-dom": "^15.1.0",
+    "prop-types": "^15.6.0",
+    "react": "^15.6.2",
+    "react-dnd": "^2.5.4",
+    "react-dnd-html5-backend": "^2.5.4",
+    "react-dom": "^15.6.2",
     "react-redux": "^4.4.5",
     "react-select": "1.0.0-rc.5",
     "redux": "^3.5.2"
@@ -44,11 +45,11 @@
     "file-loader": "^0.8.5",
     "json-loader": "^0.5.4",
     "node-http-proxy": "^0.2.3",
-    "node-sass": "^3.7.0",
+    "node-sass": "^4.5.3",
     "path": "^0.12.7",
     "raw-loader": "^0.5.1",
     "redux-devtools": "^3.3.1",
-    "sass-loader": "^3.2.0",
+    "sass-loader": "^6.0.6",
     "style-loader": "^0.13.1",
     "svg-sprite-loader": "0.0.19",
     "url-loader": "^0.5.7",
@@ -59,5 +60,4 @@
     "node": ">=5.1",
     "npm": ">=3.3"
   }
-
 }
diff --git a/dox-sequence-diagram-ui/src/main/webapp/lib/ecomp/asdc/sequencer/Sequencer.jsx b/dox-sequence-diagram-ui/src/main/webapp/lib/ecomp/asdc/sequencer/Sequencer.jsx
index ff8e9a2..fc2bfbc 100644
--- a/dox-sequence-diagram-ui/src/main/webapp/lib/ecomp/asdc/sequencer/Sequencer.jsx
+++ b/dox-sequence-diagram-ui/src/main/webapp/lib/ecomp/asdc/sequencer/Sequencer.jsx
@@ -1,5 +1,5 @@
 /*!
- * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved.
+ * Copyright © 2016-2017 European Support Limited
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
@@ -15,6 +15,7 @@
  */
 
 import React from 'react';
+import PropTypes from 'prop-types';
 import Application from './components/application/Application';
 import Common from './common/Common';
 import Options from './common/Options';
@@ -26,7 +27,7 @@
 /**
  * ASDC Sequencer entry point.
  */
-export default class Sequencer extends React.Component {
+class Sequencer extends React.Component {
 
   // //////////////////////////////////////////////////////////////////////////////////////////////
 
@@ -193,7 +194,10 @@
 }
 
 Sequencer.propTypes = {
-  options: React.PropTypes.object.isRequired,
-  model: React.PropTypes.object,
-  metamodel: React.PropTypes.object,
+  options: PropTypes.object.isRequired,
+  model: PropTypes.object,
+  metamodel: PropTypes.object,
 };
+
+
+export default Sequencer;
diff --git a/dox-sequence-diagram-ui/src/main/webapp/lib/ecomp/asdc/sequencer/components/application/Application.jsx b/dox-sequence-diagram-ui/src/main/webapp/lib/ecomp/asdc/sequencer/components/application/Application.jsx
index 63b82c0..6889e0a 100644
--- a/dox-sequence-diagram-ui/src/main/webapp/lib/ecomp/asdc/sequencer/components/application/Application.jsx
+++ b/dox-sequence-diagram-ui/src/main/webapp/lib/ecomp/asdc/sequencer/components/application/Application.jsx
@@ -1,5 +1,5 @@
 /*!
- * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved.
+ * Copyright © 2016-2017 European Support Limited
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
@@ -15,7 +15,7 @@
  */
 
 import React from 'react';
-
+import PropTypes from 'prop-types';
 import Common from '../../common/Common';
 import Logger from '../../common/Logger';
 import Diagram from '../diagram/Diagram';
@@ -27,7 +27,7 @@
 /**
  * Application controller, also a view.
  */
-export default class Application extends React.Component {
+class Application extends React.Component {
 
   /**
    * Construct application view.
@@ -278,6 +278,8 @@
 
 /** React properties. */
 Application.propTypes = {
-  options: React.PropTypes.object.isRequired,
-  sequencer: React.PropTypes.object.isRequired,
+  options: PropTypes.object.isRequired,
+  sequencer: PropTypes.object.isRequired,
 };
+
+export default Application;
diff --git a/dox-sequence-diagram-ui/src/main/webapp/lib/ecomp/asdc/sequencer/components/diagram/Diagram.jsx b/dox-sequence-diagram-ui/src/main/webapp/lib/ecomp/asdc/sequencer/components/diagram/Diagram.jsx
index a035e6c..b3544d7 100644
--- a/dox-sequence-diagram-ui/src/main/webapp/lib/ecomp/asdc/sequencer/components/diagram/Diagram.jsx
+++ b/dox-sequence-diagram-ui/src/main/webapp/lib/ecomp/asdc/sequencer/components/diagram/Diagram.jsx
@@ -1,5 +1,5 @@
 /*!
- * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved.
+ * Copyright © 2016-2017 European Support Limited
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
@@ -15,6 +15,7 @@
  */
 
 import React from 'react';
+import PropTypes from 'prop-types';
 import _template from 'lodash/template';
 import _merge from 'lodash/merge';
 import * as d3 from 'd3';
@@ -26,7 +27,7 @@
 /**
  * SVG diagram view.
  */
-export default class Diagram extends React.Component {
+class Diagram extends React.Component {
 
   // ///////////////////////////////////////////////////////////////////////////////////////////////
 
@@ -918,5 +919,7 @@
 
 
 Diagram.propTypes = {
-  application: React.PropTypes.object.isRequired,
+  application: PropTypes.object.isRequired,
 };
+
+export default Diagram;
diff --git a/dox-sequence-diagram-ui/src/main/webapp/lib/ecomp/asdc/sequencer/components/diagram/components/popup/Popup.jsx b/dox-sequence-diagram-ui/src/main/webapp/lib/ecomp/asdc/sequencer/components/diagram/components/popup/Popup.jsx
index b8e2d93..8f8f859 100644
--- a/dox-sequence-diagram-ui/src/main/webapp/lib/ecomp/asdc/sequencer/components/diagram/components/popup/Popup.jsx
+++ b/dox-sequence-diagram-ui/src/main/webapp/lib/ecomp/asdc/sequencer/components/diagram/components/popup/Popup.jsx
@@ -1,5 +1,5 @@
 /*!
- * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved.
+ * Copyright © 2016-2017 European Support Limited
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
@@ -15,7 +15,6 @@
  */
 
 import React from 'react';
-
 import Icon from '../../../icons/Icon';
 import iconEdit from '../../../../../../../../res/ecomp/asdc/sequencer/sprites/icons/edit.svg';
 
@@ -25,7 +24,7 @@
  * @returns {XML}
  * @constructor
  */
-export default class Popup extends React.Component {
+class Popup extends React.Component {
 
   // ///////////////////////////////////////////////////////////////////////////////////////////////////////////////////
 
@@ -106,3 +105,5 @@
     );
   }
 }
+
+export default Popup;
diff --git a/dox-sequence-diagram-ui/src/main/webapp/lib/ecomp/asdc/sequencer/components/dialog/Dialog.jsx b/dox-sequence-diagram-ui/src/main/webapp/lib/ecomp/asdc/sequencer/components/dialog/Dialog.jsx
index e6e4824..d48ef3b 100644
--- a/dox-sequence-diagram-ui/src/main/webapp/lib/ecomp/asdc/sequencer/components/dialog/Dialog.jsx
+++ b/dox-sequence-diagram-ui/src/main/webapp/lib/ecomp/asdc/sequencer/components/dialog/Dialog.jsx
@@ -1,5 +1,5 @@
 /*!
- * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved.
+ * Copyright © 2016-2017 European Support Limited
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
@@ -15,7 +15,7 @@
  */
 
 import React from 'react';
-
+import PropTypes from 'prop-types';
 import Icon from '../icons/Icon';
 import iconQuestion from '../../../../../../res/ecomp/asdc/sequencer/sprites/icons/question.svg';
 import iconExclaim from '../../../../../../res/ecomp/asdc/sequencer/sprites/icons/exclaim.svg';
@@ -27,7 +27,7 @@
  * Multi-purpose dialog. Rendered into the page on initialization, and then
  * configured, shown and hidden as required.
  */
-export default class Dialog extends React.Component {
+class Dialog extends React.Component {
 
   // ///////////////////////////////////////////////////////////////////////////////////////////////
 
@@ -232,5 +232,7 @@
 }
 
 Dialog.propTypes = {
-  application: React.PropTypes.object.isRequired,
+  application: PropTypes.object.isRequired,
 };
+
+export default Dialog;
diff --git a/dox-sequence-diagram-ui/src/main/webapp/lib/ecomp/asdc/sequencer/components/editor/Editor.jsx b/dox-sequence-diagram-ui/src/main/webapp/lib/ecomp/asdc/sequencer/components/editor/Editor.jsx
index 09703b8..00c8f7c 100644
--- a/dox-sequence-diagram-ui/src/main/webapp/lib/ecomp/asdc/sequencer/components/editor/Editor.jsx
+++ b/dox-sequence-diagram-ui/src/main/webapp/lib/ecomp/asdc/sequencer/components/editor/Editor.jsx
@@ -1,5 +1,5 @@
 /*!
- * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved.
+ * Copyright © 2016-2017 European Support Limited
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
@@ -15,7 +15,7 @@
  */
 
 import React from 'react';
-
+import PropTypes from 'prop-types';
 import Logger from '../../common/Logger';
 import Common from '../../common/Common';
 import Designer from './components/designer/Designer';
@@ -25,7 +25,7 @@
 /**
  * Editor view, aggregating the designer, the code editor, the toolbar.
  */
-export default class Editor extends React.Component {
+class Editor extends React.Component {
 
   // ///////////////////////////////////////////////////////////////////////////////////////////////
 
@@ -167,5 +167,8 @@
 
 /** Element properties. */
 Editor.propTypes = {
-  application: React.PropTypes.object.isRequired,
+  application: PropTypes.object.isRequired,
 };
+
+export default Editor;
+
diff --git a/dox-sequence-diagram-ui/src/main/webapp/lib/ecomp/asdc/sequencer/components/editor/components/designer/Designer.jsx b/dox-sequence-diagram-ui/src/main/webapp/lib/ecomp/asdc/sequencer/components/editor/components/designer/Designer.jsx
index 38f5550..39ed090 100644
--- a/dox-sequence-diagram-ui/src/main/webapp/lib/ecomp/asdc/sequencer/components/editor/components/designer/Designer.jsx
+++ b/dox-sequence-diagram-ui/src/main/webapp/lib/ecomp/asdc/sequencer/components/editor/components/designer/Designer.jsx
@@ -1,5 +1,5 @@
 /*!
- * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved.
+ * Copyright © 2016-2017 European Support Limited
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
@@ -15,7 +15,7 @@
  */
 
 import React from 'react';
-
+import PropTypes from 'prop-types';
 import HTML5Backend from 'react-dnd-html5-backend';
 import { DragDropContext } from 'react-dnd';
 
@@ -397,7 +397,7 @@
 
 /** Element properties. */
 Designer.propTypes = {
-  application: React.PropTypes.object.isRequired,
+  application: PropTypes.object.isRequired,
 };
 
 export default DragDropContext(HTML5Backend)(Designer);
diff --git a/dox-sequence-diagram-ui/src/main/webapp/lib/ecomp/asdc/sequencer/components/editor/components/designer/components/actions/Actions.jsx b/dox-sequence-diagram-ui/src/main/webapp/lib/ecomp/asdc/sequencer/components/editor/components/designer/components/actions/Actions.jsx
index 9f2e808..5a8343c 100644
--- a/dox-sequence-diagram-ui/src/main/webapp/lib/ecomp/asdc/sequencer/components/editor/components/designer/components/actions/Actions.jsx
+++ b/dox-sequence-diagram-ui/src/main/webapp/lib/ecomp/asdc/sequencer/components/editor/components/designer/components/actions/Actions.jsx
@@ -1,5 +1,5 @@
 /*!
- * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved.
+ * Copyright © 2016-2017 European Support Limited
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
@@ -15,6 +15,7 @@
  */
 
 import React from 'react';
+import PropTypes from 'prop-types';
 import Select from 'react-select';
 
 import Common from '../../../../../../common/Common';
@@ -34,7 +35,7 @@
 /**
  * Action menu view.
  */
-export default class Actions extends React.Component {
+class Actions extends React.Component {
 
   // ///////////////////////////////////////////////////////////////////////////////////////////////
 
@@ -466,6 +467,8 @@
 
 /** Element properties. */
 Actions.propTypes = {
-  application: React.PropTypes.object.isRequired,
-  model: React.PropTypes.object.isRequired,
+  application: PropTypes.object.isRequired,
+  model: PropTypes.object.isRequired,
 };
+
+export default Actions;
diff --git a/dox-sequence-diagram-ui/src/main/webapp/lib/ecomp/asdc/sequencer/components/editor/components/designer/components/lifeline/Lifeline.jsx b/dox-sequence-diagram-ui/src/main/webapp/lib/ecomp/asdc/sequencer/components/editor/components/designer/components/lifeline/Lifeline.jsx
index 8a3d184..86ee80f 100644
--- a/dox-sequence-diagram-ui/src/main/webapp/lib/ecomp/asdc/sequencer/components/editor/components/designer/components/lifeline/Lifeline.jsx
+++ b/dox-sequence-diagram-ui/src/main/webapp/lib/ecomp/asdc/sequencer/components/editor/components/designer/components/lifeline/Lifeline.jsx
@@ -1,5 +1,5 @@
 /*!
- * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved.
+ * Copyright © 2016-2017 European Support Limited
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
@@ -15,6 +15,7 @@
  */
 
 import React from 'react';
+import PropTypes from 'prop-types';
 import { DragSource, DropTarget } from 'react-dnd';
 
 import Common from '../../../../../../common/Common';
@@ -191,17 +192,17 @@
  * Declare properties.
  */
 Lifeline.propTypes = {
-  application: React.PropTypes.object.isRequired,
-  designer: React.PropTypes.object.isRequired,
-  lifeline: React.PropTypes.object.isRequired,
-  active: React.PropTypes.bool.isRequired,
-  metamodel: React.PropTypes.object.isRequired,
-  id: React.PropTypes.any.isRequired,
-  index: React.PropTypes.number.isRequired,
-  lifelines: React.PropTypes.object.isRequired,
-  isDragging: React.PropTypes.bool.isRequired,
-  connectDragSource: React.PropTypes.func.isRequired,
-  connectDropTarget: React.PropTypes.func.isRequired,
+  application: PropTypes.object.isRequired,
+  designer: PropTypes.object.isRequired,
+  lifeline: PropTypes.object.isRequired,
+  active: PropTypes.bool.isRequired,
+  metamodel: PropTypes.object.isRequired,
+  id: PropTypes.any.isRequired,
+  index: PropTypes.number.isRequired,
+  lifelines: PropTypes.object.isRequired,
+  isDragging: PropTypes.bool.isRequired,
+  connectDragSource: PropTypes.func.isRequired,
+  connectDropTarget: PropTypes.func.isRequired,
 };
 
 /** DND. */
diff --git a/dox-sequence-diagram-ui/src/main/webapp/lib/ecomp/asdc/sequencer/components/editor/components/designer/components/lifeline/LifelineNew.jsx b/dox-sequence-diagram-ui/src/main/webapp/lib/ecomp/asdc/sequencer/components/editor/components/designer/components/lifeline/LifelineNew.jsx
index 8e7c30f..a8147be 100644
--- a/dox-sequence-diagram-ui/src/main/webapp/lib/ecomp/asdc/sequencer/components/editor/components/designer/components/lifeline/LifelineNew.jsx
+++ b/dox-sequence-diagram-ui/src/main/webapp/lib/ecomp/asdc/sequencer/components/editor/components/designer/components/lifeline/LifelineNew.jsx
@@ -1,5 +1,5 @@
 /*!
- * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved.
+ * Copyright © 2016-2017 European Support Limited
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
@@ -15,6 +15,7 @@
  */
 
 import React from 'react';
+import PropTypes from 'prop-types';
 import { DragSource } from 'react-dnd';
 
 import Icon from '../../../../../icons/Icon';
@@ -89,9 +90,9 @@
 
 /** Element properties. */
 LifelineNew.propTypes = {
-  designer: React.PropTypes.object.isRequired,
-  lifelines: React.PropTypes.object.isRequired,
-  connectDragSource: React.PropTypes.func.isRequired,
+  designer: PropTypes.object.isRequired,
+  lifelines: PropTypes.object.isRequired,
+  connectDragSource: PropTypes.func.isRequired,
 };
 
 /** DND. */
diff --git a/dox-sequence-diagram-ui/src/main/webapp/lib/ecomp/asdc/sequencer/components/editor/components/designer/components/lifeline/Lifelines.jsx b/dox-sequence-diagram-ui/src/main/webapp/lib/ecomp/asdc/sequencer/components/editor/components/designer/components/lifeline/Lifelines.jsx
index 2e2f2ee..2f82fec 100644
--- a/dox-sequence-diagram-ui/src/main/webapp/lib/ecomp/asdc/sequencer/components/editor/components/designer/components/lifeline/Lifelines.jsx
+++ b/dox-sequence-diagram-ui/src/main/webapp/lib/ecomp/asdc/sequencer/components/editor/components/designer/components/lifeline/Lifelines.jsx
@@ -1,5 +1,5 @@
 /*!
- * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved.
+ * Copyright © 2016-2017 European Support Limited
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
@@ -15,7 +15,7 @@
  */
 
 import React from 'react';
-
+import PropTypes from 'prop-types';
 import Common from '../../../../../../common/Common';
 
 import Lifeline from './Lifeline';
@@ -27,7 +27,7 @@
  * @returns {*}
  * @constructor
  */
-export default class Lifelines extends React.Component {
+class Lifelines extends React.Component {
 
   // ///////////////////////////////////////////////////////////////////////////////////////////////
 
@@ -130,7 +130,9 @@
  * Declare properties.
  */
 Lifelines.propTypes = {
-  application: React.PropTypes.object.isRequired,
-  designer: React.PropTypes.object.isRequired,
-  activeLifelineId: React.PropTypes.string,
+  application: PropTypes.object.isRequired,
+  designer: PropTypes.object.isRequired,
+  activeLifelineId: PropTypes.string,
 };
+
+export default Lifelines;
diff --git a/dox-sequence-diagram-ui/src/main/webapp/lib/ecomp/asdc/sequencer/components/editor/components/designer/components/message/Message.jsx b/dox-sequence-diagram-ui/src/main/webapp/lib/ecomp/asdc/sequencer/components/editor/components/designer/components/message/Message.jsx
index 39f3127..a2c7f51 100644
--- a/dox-sequence-diagram-ui/src/main/webapp/lib/ecomp/asdc/sequencer/components/editor/components/designer/components/message/Message.jsx
+++ b/dox-sequence-diagram-ui/src/main/webapp/lib/ecomp/asdc/sequencer/components/editor/components/designer/components/message/Message.jsx
@@ -1,5 +1,5 @@
 /*!
- * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved.
+ * Copyright © 2016-2017 European Support Limited
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
@@ -15,6 +15,7 @@
  */
 
 import React from 'react';
+import PropTypes from 'prop-types';
 import Select from 'react-select';
 import { DragSource, DropTarget } from 'react-dnd';
 
@@ -516,17 +517,17 @@
  * @type {{designer: *, message: *, from: *, to: *, model: *, connectDragSource: *}}
  */
 Message.propTypes = {
-  application: React.PropTypes.object.isRequired,
-  designer: React.PropTypes.object.isRequired,
-  message: React.PropTypes.object.isRequired,
-  active: React.PropTypes.bool.isRequired,
-  from: React.PropTypes.object.isRequired,
-  to: React.PropTypes.object.isRequired,
-  model: React.PropTypes.object.isRequired,
-  index: React.PropTypes.number.isRequired,
-  messages: React.PropTypes.object.isRequired,
-  connectDragSource: React.PropTypes.func.isRequired,
-  connectDropTarget: React.PropTypes.func.isRequired,
+  application: PropTypes.object.isRequired,
+  designer: PropTypes.object.isRequired,
+  message: PropTypes.object.isRequired,
+  active: PropTypes.bool.isRequired,
+  from: PropTypes.object.isRequired,
+  to: PropTypes.object.isRequired,
+  model: PropTypes.object.isRequired,
+  index: PropTypes.number.isRequired,
+  messages: PropTypes.object.isRequired,
+  connectDragSource: PropTypes.func.isRequired,
+  connectDropTarget: PropTypes.func.isRequired,
 };
 
 /** DND. */
diff --git a/dox-sequence-diagram-ui/src/main/webapp/lib/ecomp/asdc/sequencer/components/editor/components/designer/components/message/MessageNew.jsx b/dox-sequence-diagram-ui/src/main/webapp/lib/ecomp/asdc/sequencer/components/editor/components/designer/components/message/MessageNew.jsx
index dbb6b11..c47cf28 100644
--- a/dox-sequence-diagram-ui/src/main/webapp/lib/ecomp/asdc/sequencer/components/editor/components/designer/components/message/MessageNew.jsx
+++ b/dox-sequence-diagram-ui/src/main/webapp/lib/ecomp/asdc/sequencer/components/editor/components/designer/components/message/MessageNew.jsx
@@ -1,5 +1,5 @@
 /*!
- * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved.
+ * Copyright © 2016-2017 European Support Limited
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
@@ -15,6 +15,7 @@
  */
 
 import React from 'react';
+import PropTypes from 'prop-types';
 import { DragSource } from 'react-dnd';
 
 import Icon from '../../../../../icons/Icon';
@@ -82,9 +83,9 @@
 
 /** Element properties. */
 MessageNew.propTypes = {
-  designer: React.PropTypes.object.isRequired,
-  messages: React.PropTypes.object.isRequired,
-  connectDragSource: React.PropTypes.func.isRequired,
+  designer: PropTypes.object.isRequired,
+  messages: PropTypes.object.isRequired,
+  connectDragSource: PropTypes.func.isRequired,
 };
 
 /** DND. */
diff --git a/dox-sequence-diagram-ui/src/main/webapp/lib/ecomp/asdc/sequencer/components/editor/components/designer/components/message/Messages.jsx b/dox-sequence-diagram-ui/src/main/webapp/lib/ecomp/asdc/sequencer/components/editor/components/designer/components/message/Messages.jsx
index a305a6b..4171554 100644
--- a/dox-sequence-diagram-ui/src/main/webapp/lib/ecomp/asdc/sequencer/components/editor/components/designer/components/message/Messages.jsx
+++ b/dox-sequence-diagram-ui/src/main/webapp/lib/ecomp/asdc/sequencer/components/editor/components/designer/components/message/Messages.jsx
@@ -1,5 +1,5 @@
 /*!
- * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved.
+ * Copyright © 2016-2017 European Support Limited
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
@@ -15,7 +15,7 @@
  */
 
 import React from 'react';
-
+import PropTypes from 'prop-types';
 import Common from '../../../../../../common/Common';
 
 import Message from './Message';
@@ -137,7 +137,7 @@
 
 /** Element properties. */
 Messages.propTypes = {
-  application: React.PropTypes.object.isRequired,
-  designer: React.PropTypes.object.isRequired,
-  activeMessageId: React.PropTypes.string,
+  application: PropTypes.object.isRequired,
+  designer: PropTypes.object.isRequired,
+  activeMessageId: PropTypes.string,
 };
diff --git a/dox-sequence-diagram-ui/src/main/webapp/lib/ecomp/asdc/sequencer/components/editor/components/designer/components/metadata/Metadata.jsx b/dox-sequence-diagram-ui/src/main/webapp/lib/ecomp/asdc/sequencer/components/editor/components/designer/components/metadata/Metadata.jsx
index a17a197..cc1fadd 100644
--- a/dox-sequence-diagram-ui/src/main/webapp/lib/ecomp/asdc/sequencer/components/editor/components/designer/components/metadata/Metadata.jsx
+++ b/dox-sequence-diagram-ui/src/main/webapp/lib/ecomp/asdc/sequencer/components/editor/components/designer/components/metadata/Metadata.jsx
@@ -1,5 +1,5 @@
 /*!
- * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved.
+ * Copyright © 2016-2017 European Support Limited
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
@@ -15,7 +15,7 @@
  */
 
 import React from 'react';
-
+import PropTypes from 'prop-types';
 /**
  * Metadata view.
  */
@@ -28,7 +28,7 @@
 };
 
 Metadata.propTypes = {
-  metadata: React.PropTypes.object.isRequired,
+  metadata: PropTypes.object.isRequired,
 };
 
 export default Metadata;
diff --git a/dox-sequence-diagram-ui/src/main/webapp/lib/ecomp/asdc/sequencer/components/editor/components/source/Source.jsx b/dox-sequence-diagram-ui/src/main/webapp/lib/ecomp/asdc/sequencer/components/editor/components/source/Source.jsx
index 3d13d83..04ea528 100644
--- a/dox-sequence-diagram-ui/src/main/webapp/lib/ecomp/asdc/sequencer/components/editor/components/source/Source.jsx
+++ b/dox-sequence-diagram-ui/src/main/webapp/lib/ecomp/asdc/sequencer/components/editor/components/source/Source.jsx
@@ -1,5 +1,5 @@
 /*!
- * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved.
+ * Copyright © 2016-2017 European Support Limited
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
@@ -15,7 +15,7 @@
  */
 
 import React from 'react';
-
+import PropTypes from 'prop-types';
 /**
  * Editor view, aggregating the designer, the code editor, the toolbar.
  */
@@ -81,6 +81,6 @@
 }
 
 Source.propTypes = {
-  application: React.PropTypes.object.isRequired,
+  application: PropTypes.object.isRequired,
 };
 
diff --git a/dox-sequence-diagram-ui/src/main/webapp/lib/ecomp/asdc/sequencer/components/editor/components/toolbar/Toolbar.jsx b/dox-sequence-diagram-ui/src/main/webapp/lib/ecomp/asdc/sequencer/components/editor/components/toolbar/Toolbar.jsx
index b6b0f57..4ac9c3d 100644
--- a/dox-sequence-diagram-ui/src/main/webapp/lib/ecomp/asdc/sequencer/components/editor/components/toolbar/Toolbar.jsx
+++ b/dox-sequence-diagram-ui/src/main/webapp/lib/ecomp/asdc/sequencer/components/editor/components/toolbar/Toolbar.jsx
@@ -1,5 +1,5 @@
 /*!
- * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved.
+ * Copyright © 2016-2017 European Support Limited
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
@@ -15,7 +15,7 @@
  */
 
 import React from 'react';
-
+import PropTypes from 'prop-types';
 import Common from '../../../../common/Common';
 
 import iconPlus from '../../../../../../../../res/ecomp/asdc/sequencer/sprites/icons/plus.svg';
@@ -270,6 +270,6 @@
 }
 
 Toolbar.propTypes = {
-  application: React.PropTypes.object.isRequired,
-  editor: React.PropTypes.object.isRequired,
+  application: PropTypes.object.isRequired,
+  editor: PropTypes.object.isRequired,
 };
diff --git a/dox-sequence-diagram-ui/src/main/webapp/lib/ecomp/asdc/sequencer/components/icons/Icon.jsx b/dox-sequence-diagram-ui/src/main/webapp/lib/ecomp/asdc/sequencer/components/icons/Icon.jsx
index 6bc04f9..6ed2d45 100644
--- a/dox-sequence-diagram-ui/src/main/webapp/lib/ecomp/asdc/sequencer/components/icons/Icon.jsx
+++ b/dox-sequence-diagram-ui/src/main/webapp/lib/ecomp/asdc/sequencer/components/icons/Icon.jsx
@@ -1,5 +1,5 @@
 /*!
- * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved.
+ * Copyright © 2016-2017 European Support Limited
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
@@ -15,7 +15,7 @@
  */
 
 import React from 'react';
-
+import PropTypes from 'prop-types';
 /**
  * Simple icon view.
  * @param glyph glyph definition, from import.
@@ -33,8 +33,8 @@
 
 /** Declare properties. */
 Icon.propTypes = {
-  className: React.PropTypes.string,
-  glyph: React.PropTypes.string.isRequired,
+  className: PropTypes.string,
+  glyph: PropTypes.string.isRequired,
 };
 
 export default Icon;
diff --git a/dox-sequence-diagram-ui/src/main/webapp/lib/main.jsx b/dox-sequence-diagram-ui/src/main/webapp/lib/main.jsx
index 33a62f7..1898ba2 100644
--- a/dox-sequence-diagram-ui/src/main/webapp/lib/main.jsx
+++ b/dox-sequence-diagram-ui/src/main/webapp/lib/main.jsx
@@ -1,21 +1,21 @@
-/*!
- * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved.
+/*
+ * Copyright © 2016-2017 European Support Limited
  *
  * 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
- *
+ * 
+ *      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.
+ * 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.
  */
 
 import React from 'react';
-import { render } from 'react-dom';
+import { ReactDOM } from 'react-dom';
 import Sequencer from './ecomp/asdc/sequencer/Sequencer';
 import '../res/ecomp/asdc/sequencer/sequencer-development.scss';
 import '../res/thirdparty/react-select/react-select.min.css';
@@ -25,7 +25,7 @@
   shell.setAttribute('style', 'height:100%;width:100%;margin:0;padding:0');
   document.body.appendChild(shell);
   const options = { demo: true };
-  render(<Sequencer options={options} />, shell);
+  ReactDOM.render(<Sequencer options={options} />, shell);
 }
 
 if (window.addEventListener) {
