diff --git a/openbis_ng_ui/src/js/components/App.jsx b/openbis_ng_ui/src/js/components/App.jsx
index 425a8f84bab242e4c67b966b81b5603da9333756..e06b48c7d8848d9a5f662d9eceda8cd49a649cb6 100644
--- a/openbis_ng_ui/src/js/components/App.jsx
+++ b/openbis_ng_ui/src/js/components/App.jsx
@@ -17,6 +17,9 @@ import Users from '@src/js/components/users/Users.jsx'
 import Types from '@src/js/components/types/Types.jsx'
 import Tools from '@src/js/components/tools/Tools.jsx'
 
+import AppController from '@src/js/components/AppController.js'
+import ComponentContext from '@src/js/components/common/ComponentContext.js'
+
 const styles = {
   container: {
     height: '100%',
@@ -64,6 +67,20 @@ function mapDispatchToProps(dispatch) {
 }
 
 class App extends React.Component {
+  constructor(props) {
+    super(props)
+
+    this.state = {}
+
+    if (this.props.controller) {
+      this.controller = this.props.controller
+    } else {
+      this.controller = AppController
+    }
+
+    this.controller.init(new ComponentContext(this))
+  }
+
   componentDidMount() {
     this.props.init()
   }
@@ -72,11 +89,15 @@ class App extends React.Component {
     logger.log(logger.DEBUG, 'App.render')
 
     return (
-      <Loading loading={this.props.loading}>
-        <Error error={this.props.error} errorClosed={this.props.errorClosed}>
-          {this.props.initialized && this.renderPage()}
-        </Error>
-      </Loading>
+      <AppController.LastObjectModificationsContext.Provider
+        value={AppController.getLastObjectModifications()}
+      >
+        <Loading loading={this.props.loading}>
+          <Error error={this.props.error} errorClosed={this.props.errorClosed}>
+            {this.props.initialized && this.renderPage()}
+          </Error>
+        </Loading>
+      </AppController.LastObjectModificationsContext.Provider>
     )
   }
 
diff --git a/openbis_ng_ui/src/js/components/AppController.js b/openbis_ng_ui/src/js/components/AppController.js
new file mode 100644
index 0000000000000000000000000000000000000000..20f17f11ce583afec9bf91fcfb4c2c8dbcbc8c9c
--- /dev/null
+++ b/openbis_ng_ui/src/js/components/AppController.js
@@ -0,0 +1,53 @@
+import React from 'react'
+
+class AppController {
+  constructor() {
+    this.LastObjectModificationsContext = React.createContext()
+  }
+
+  init(context) {
+    this.context = context
+
+    const initialState = {
+      lastObjectModifications: 'abc'
+    }
+
+    context.initState(initialState)
+  }
+
+  getLastObjectModifications() {
+    return this.context.getState().lastObjectModifications
+  }
+
+  setLastObjectModifications(lastObjectModifications) {
+    this.context.setState({
+      lastObjectModifications: lastObjectModifications
+    })
+  }
+
+  withLastObjectModifications() {
+    return this._withContext(
+      this.LastObjectModificationsContext,
+      'lastObjectModifications'
+    )
+  }
+
+  _withContext(Context, propertyName) {
+    const WithContext = Component => {
+      const WithConsumer = props => {
+        return React.createElement(Context.Consumer, {}, value =>
+          React.createElement(Component, {
+            ...props,
+            [propertyName]: value
+          })
+        )
+      }
+      WithConsumer.displayName = 'WithConsumer'
+      return WithConsumer
+    }
+    WithContext.displayName = 'WithContext'
+    return WithContext
+  }
+}
+
+export default new AppController()
diff --git a/openbis_ng_ui/src/js/components/common/browser/BrowserButtons.jsx b/openbis_ng_ui/src/js/components/common/browser/BrowserButtons.jsx
index ed6505afb9447e022333891b4ba0c6d698de824f..4aece59442f9ff62c6426f892bfc022bf78139d0 100644
--- a/openbis_ng_ui/src/js/components/common/browser/BrowserButtons.jsx
+++ b/openbis_ng_ui/src/js/components/common/browser/BrowserButtons.jsx
@@ -1,3 +1,4 @@
+import _ from 'lodash'
 import React from 'react'
 import { withStyles } from '@material-ui/core/styles'
 import Container from '@src/js/components/common/form/Container.jsx'
@@ -5,6 +6,8 @@ import Button from '@src/js/components/common/form/Button.jsx'
 import messages from '@src/js/common/messages.js'
 import logger from '@src/js/common/logger.js'
 
+import AppController from '@src/js/components/AppController.js'
+
 const styles = theme => ({
   container: {
     display: 'flex',
@@ -22,7 +25,13 @@ class BrowserButtons extends React.Component {
   render() {
     logger.log(logger.DEBUG, 'BrowserButtons.render')
 
-    const { controller, classes, addEnabled, removeEnabled } = this.props
+    const {
+      controller,
+      classes,
+      addEnabled,
+      removeEnabled,
+      lastObjectModifications
+    } = this.props
 
     return (
       <Container className={classes.container}>
@@ -40,9 +49,13 @@ class BrowserButtons extends React.Component {
           onClick={controller.nodeRemove}
           disabled={!removeEnabled}
         />
+        {lastObjectModifications}
       </Container>
     )
   }
 }
 
-export default withStyles(styles)(BrowserButtons)
+export default _.flow(
+  withStyles(styles),
+  AppController.withLastObjectModifications()
+)(BrowserButtons)
diff --git a/openbis_ng_ui/src/js/components/common/grid/Grid.jsx b/openbis_ng_ui/src/js/components/common/grid/Grid.jsx
index c92e7f64234b5775ad0b2e1fe32e18fdc4fcddae..2ff2aa5e6e17f98aaeab002f68b56999648343da 100644
--- a/openbis_ng_ui/src/js/components/common/grid/Grid.jsx
+++ b/openbis_ng_ui/src/js/components/common/grid/Grid.jsx
@@ -19,6 +19,8 @@ import GridFiltersConfig from '@src/js/components/common/grid/GridFiltersConfig.
 import ComponentContext from '@src/js/components/common/ComponentContext.js'
 import logger from '@src/js/common/logger.js'
 
+import AppController from '@src/js/components/AppController.js'
+
 const styles = theme => ({
   container: {
     minWidth: '800px',
@@ -176,6 +178,13 @@ class Grid extends React.PureComponent {
         {this.renderPaging()}
         {this.renderConfigs()}
         {this.renderExports()}
+        <button
+          onClick={() => {
+            AppController.setLastObjectModifications(Math.random())
+          }}
+        >
+          Test
+        </button>
       </GridRowFullWidth>
     )
   }