diff --git a/render_example/render_example.module b/render_example/render_example.module
index 79524b4..048672e 100644
--- a/render_example/render_example.module
+++ b/render_example/render_example.module
@@ -86,53 +86,6 @@ function render_example_theme() {
   ];
 }
 
-/**
- * Example '#post_render' callback function.
- *
- * Post render callbacks are triggered after an element has been rendered to
- * HTML and can act upon the final rendered string.
- *
- * This function is made use of by one of the examples in
- * Drupal\render_example\Controller\RenderExampleController::arrays().
- *
- * @param string $markup
- *   The rendered element.
- * @param array $element
- *   The element which was rendered (for reference)
- *
- * @return string
- *   Markup altered as necessary. In this case we add a little postscript to it.
- *
- * @see \Drupal\render_example\Controller\RenderExampleController::arrays()
- */
-function render_example_add_prefix($markup, array $element) {
-  $markup = $markup . '<div style="color:blue">This markup was added after rendering by a #post_render callback.</div>';
-  return $markup;
-}
-
-/**
- * Example '#pre_render' function.
- *
- * Pre render callbacks are triggered prior to rendering an element to HTML and
- * are given the chance to manipulate the renderable array. Any changes they
- * make will be reflected in the final rendered HTML.
- *
- * This function is made use of by one of the examples in
- * Drupal\render_example\Controller\RenderExampleController::arrays().
- *
- * @param array $element
- *   The element which will be rendered.
- *
- * @return array
- *   The altered element. In this case we add a #prefix to it.
- *
- * @see \Drupal\render_example\Controller\RenderExampleController::arrays()
- */
-function render_example_add_suffix(array $element) {
-  $element['#suffix'] = '<div style="color:red">' . t('This #suffix was added by a #pre_render callback.') . '</div>';
-  return $element;
-}
-
 /**
  * Implements hook_preprocess_page().
  *
@@ -141,7 +94,7 @@ function render_example_add_suffix(array $element) {
  */
 function render_example_preprocess_page(&$variables) {
   // Only modify the 'altering' page.
-  if (\Drupal::routeMatch()->getRouteName() != 'render_example.altering') {
+  if (\Drupal::routeMatch()->getRouteName() !== 'render_example.altering') {
     return;
   }
 
@@ -210,7 +163,7 @@ function render_example_preprocess_page(&$variables) {
  */
 function render_example_preprocess_block(&$variables) {
   // Only modify the 'altering' page.
-  if (\Drupal::routeMatch()->getRouteName() != 'render_example.altering') {
+  if (\Drupal::routeMatch()->getRouteName() !== 'render_example.altering') {
     return;
   }
 
diff --git a/render_example/src/Controller/RenderExampleController.php b/render_example/src/Controller/RenderExampleController.php
index 3ac944b..0dd24cc 100644
--- a/render_example/src/Controller/RenderExampleController.php
+++ b/render_example/src/Controller/RenderExampleController.php
@@ -3,6 +3,8 @@
 namespace Drupal\render_example\Controller;
 
 use Drupal\Core\Controller\ControllerBase;
+use Drupal\Core\Render\Markup;
+use Drupal\Core\Security\TrustedCallbackInterface;
 use Drupal\examples\Utility\DescriptionTemplateTrait;
 use Drupal\Core\Link;
 use Drupal\Core\Render\Element;
@@ -19,7 +21,7 @@ use Drupal\Core\Session\AccountInterface;
  *
  * @ingroup render_example
  */
-class RenderExampleController extends ControllerBase {
+class RenderExampleController extends ControllerBase implements TrustedCallbackInterface {
 
   use DescriptionTemplateTrait;
 
@@ -272,9 +274,11 @@ class RenderExampleController extends ControllerBase {
       '#access' => $this->currentUser->isAuthenticated(),
     ];
 
+    $class = static::class;
+
     // Some properties define callbacks, which are callable functions or methods
     // that are triggered at specific points during the rendering pipeline.
-    $build['pre_render and post_render'] = [
+    $build['pre_render_and_post_render'] = [
       '#description' => $this->t('Example of using #pre_render and #post_render'),
       '#markup' => '<div style="color:green">' . $this->t('markup for pre_render and post_render example') . '</div>',
       // #pre_render callbacks are triggered early in the rendering process,
@@ -282,11 +286,11 @@ class RenderExampleController extends ControllerBase {
       // named, and all of its children. They can be used to do things like
       // conditionally alter the value of a property prior to the array being
       // rendered to HTML.
-      '#pre_render' => ['render_example_add_suffix'],
+      '#pre_render' => [$class . '::preRenderAddSuffix'],
       // #post_render callbacks are triggered after the array has been rendered
       // and can operate on the rendered HTML. They also have access to the
       // original array for context.
-      '#post_render' => ['render_example_add_prefix'],
+      '#post_render' => [$class . '::postRenderAddPrefix'],
     ];
 
     // Properties that contain callbacks can also reference methods on a class
@@ -353,7 +357,7 @@ class RenderExampleController extends ControllerBase {
       // arguments to pass to the callback. Arguments can be only primitive
       // types (string, bool, int, float, NULL).
       '#lazy_builder' => [
-        static::class . '::lazyBuilder',
+        $class . '::lazyBuilder',
         [$this->currentUser->id(), 'Y-m-d'],
       ],
       // #lazy_builder callbacks can be used in conjunction with
@@ -397,7 +401,7 @@ class RenderExampleController extends ControllerBase {
           '#theme' => 'render_array',
           'description' => [
             '#type' => 'markup',
-            '#markup' => isset($build[$key]['#description']) ? $build[$key]['#description'] : '',
+            '#markup' => $build[$key]['#description'] ?? '',
           ],
           'rendered' => $build[$key],
           'unrendered' => [
@@ -495,4 +499,63 @@ class RenderExampleController extends ControllerBase {
     return $build;
   }
 
+  /**
+   * Example '#post_render' callback function.
+   *
+   * Post render callbacks are triggered after an element has been rendered to
+   * HTML and can act upon the final rendered string.
+   *
+   * This function is used as a post render callback in
+   * Drupal\render_example\Controller\RenderExampleController::arrays().
+   *
+   * @param string $markup
+   *   The rendered element.
+   * @param array $element
+   *   The element which was rendered (for reference)
+   *
+   * @return string
+   *   Markup altered as necessary. In this case we add a little postscript.
+   *
+   * @see \Drupal\render_example\Controller\RenderExampleController::arrays()
+   */
+  public static function postRenderAddPrefix($markup, array $element) {
+    $markup .= '<div style="color:blue">This markup was added after rendering by a #post_render callback.</div>';
+    return $markup;
+  }
+
+  /**
+   * Example '#pre_render' function.
+   *
+   * Pre render callbacks are triggered prior to rendering an element to HTML
+   * and are given the chance to manipulate the renderable array. Any changes
+   * they make will be reflected in the final rendered HTML.
+   *
+   * We need to wrap suffix in a Markup object.
+   * Otherwise, style attribute will be removed by Xss
+   * @see \Drupal\Component\Utility\Xss::filter()
+   *
+   * This function is used as a post render callback in
+   * \Drupal\render_example\Controller\RenderExampleController::arrays().
+   *
+   * @param array $element
+   *   The element which will be rendered.
+   *
+   * @return array
+   *   The altered element. In this case we add a #prefix to it.
+   *
+   * @see \Drupal\render_example\Controller\RenderExampleController::arrays()
+   */
+  public static function preRenderAddSuffix(array $element) {
+    $element['#suffix'] = Markup::create('<div style="color:red">'
+      . t('This #suffix was added by a #pre_render callback.') . '</div>');
+    return $element;
+  }
+
+  /**
+   * {@inheritDoc}
+   */
+  public static function trustedCallbacks() {
+    return ['postRenderAddPrefix', 'preRenderAddSuffix', 'lazyBuilder'];
+  }
+
 }
diff --git a/render_example/tests/src/Functional/RenderExampleMenuTest.php b/render_example/tests/src/Functional/RenderExampleMenuTest.php
index 990501a..d7acaf8 100644
--- a/render_example/tests/src/Functional/RenderExampleMenuTest.php
+++ b/render_example/tests/src/Functional/RenderExampleMenuTest.php
@@ -15,6 +15,11 @@ use Drupal\Tests\BrowserTestBase;
  */
 class RenderExampleMenuTest extends BrowserTestBase {
 
+  /**
+   * {@inheritdoc}
+   */
+  protected $defaultTheme = 'stark';
+
   /**
    * Modules to enable.
    *
diff --git a/render_example/tests/src/Functional/RenderExampleTest.php b/render_example/tests/src/Functional/RenderExampleTest.php
index 6b694b0..4143cbf 100644
--- a/render_example/tests/src/Functional/RenderExampleTest.php
+++ b/render_example/tests/src/Functional/RenderExampleTest.php
@@ -15,6 +15,11 @@ use Drupal\Tests\BrowserTestBase;
  */
 class RenderExampleTest extends BrowserTestBase {
 
+  /**
+   * {@inheritdoc}
+   */
+  protected $defaultTheme = 'bartik';
+
   /**
    * {@inheritdoc}
    */
