diff --git a/src/Plugin/Layout/LayoutBase.php b/src/Plugin/Layout/LayoutBase.php
index 30ec3c6..1aef8ac 100644
--- a/src/Plugin/Layout/LayoutBase.php
+++ b/src/Plugin/Layout/LayoutBase.php
@@ -5,6 +5,7 @@ namespace Drupal\layout_styles\Plugin\Layout;
 use Drupal\Core\Form\FormStateInterface;
 use Drupal\Core\Layout\LayoutDefault;
 use Drupal\Core\Plugin\PluginFormInterface;
+use Drupal\file\Entity\File;
 
 /**
  * {@inheritdoc}
@@ -15,21 +16,51 @@ class LayoutBase extends LayoutDefault implements PluginFormInterface {
    * {@inheritdoc}
    */
   public function defaultConfiguration() {
-    return parent::defaultConfiguration();
+    return parent::defaultConfiguration() + [
+        'background_image' => NULL,
+      ];
   }
 
   /**
    * {@inheritdoc}
    */
   public function buildConfigurationForm(array $form, FormStateInterface $form_state) {
+    $form['background_image'] = [
+      '#type' => 'managed_file',
+      '#title' => 'Background Image',
+      '#default_value' => $this->configuration['background_image'],
+      '#upload_location' => 'public://',
+      '#upload_validators' => [
+        'file_validate_extensions' => ['gif png jpg jpeg'],
+      ],
+    ];
+    $form['layout_class'] = [
+      '#type' => 'textfield',
+      '#title' => 'Add class',
+      '#default_value' => $this->configuration['layout_class'],
+    ];
     return parent::buildConfigurationForm($form, $form_state);
   }
 
+  /**
+   * {@inheritdoc}
+   */
+  public function validateConfigurationForm(array &$form, FormStateInterface $form_state) {
+  }
+
   /**
    * {@inheritdoc}
    */
   public function submitConfigurationForm(array &$form, FormStateInterface $form_state) {
     parent::submitConfigurationForm($form, $form_state);
+    $this->configuration['background_image'] = $form_state->getValue('background_image');
+    $this->configuration['layout_class'] = $form_state->getValue('layout_class');
+    if (!empty($this->configuration['background_image'][0])) {
+      $fid = $this->configuration['background_image'][0];
+      $file = File::load($fid);
+      $file->setPermanent();
+      $file->save();
+    }
   }
 
   /**
@@ -37,7 +68,15 @@ class LayoutBase extends LayoutDefault implements PluginFormInterface {
    */
   public function build(array $regions) {
     $build = parent::build($regions);
+    if (!empty($this->configuration['background_image'][0])) {
+      $fid = $this->configuration['background_image'][0];
+      $file = File::load($fid);
+      $file_uri = $file->getFileUri();
+      $url = file_create_url($file_uri);
+      $build['#attributes']['style'] = 'background-image: url(' . $url . ')';
+    }
+    $build['#attributes']['class'][] = $this->configuration['layout_class'];
     return $build;
   }
 
-}
+}
\ No newline at end of file
diff --git a/src/Plugin/Layout/MultipleWidthLayoutBase.php b/src/Plugin/Layout/MultipleWidthLayoutBase.php
index bcdd52d..71d50d9 100644
--- a/src/Plugin/Layout/MultipleWidthLayoutBase.php
+++ b/src/Plugin/Layout/MultipleWidthLayoutBase.php
@@ -5,6 +5,7 @@ namespace Drupal\layout_styles\Plugin\Layout;
 use Drupal\Core\Form\FormStateInterface;
 use Drupal\Core\Layout\LayoutDefault;
 use Drupal\Core\Plugin\PluginFormInterface;
+use Drupal\file\Entity\File;
 
 /**
  * Base class of layouts with configurable widths.
@@ -19,12 +20,38 @@ abstract class MultipleWidthLayoutBase extends LayoutDefault implements PluginFo
    */
   public function defaultConfiguration() {
     $configuration = parent::defaultConfiguration();
+    $width_classes = array_keys($this->getWidthOptions());
+    return $configuration + [
+        'column_widths' => array_shift($width_classes),
+        'background_image' => NULL,
+      ];
   }
 
   /**
    * {@inheritdoc}
    */
   public function buildConfigurationForm(array $form, FormStateInterface $form_state) {
+    $form['column_widths'] = [
+      '#type' => 'select',
+      '#title' => $this->t('Column widths'),
+      '#default_value' => $this->configuration['column_widths'],
+      '#options' => $this->getWidthOptions(),
+      '#description' => $this->t('Choose the column widths for this layout.'),
+    ];
+    $form['background_image'] = [
+      '#type' => 'managed_file',
+      '#title' => 'Background Image',
+      '#default_value' => $this->configuration['background_image'],
+      '#upload_location' => 'public://',
+      '#upload_validators' => [
+        'file_validate_extensions' => ['gif png jpg jpeg'],
+      ],
+    ];
+    $form['layout_class'] = [
+      '#type' => 'textfield',
+      '#title' => 'Add class',
+      '#default_value' => $this->configuration['layout_class'],
+    ];
     return parent::buildConfigurationForm($form, $form_state);
   }
 
@@ -33,6 +60,15 @@ abstract class MultipleWidthLayoutBase extends LayoutDefault implements PluginFo
    */
   public function submitConfigurationForm(array &$form, FormStateInterface $form_state) {
     parent::submitConfigurationForm($form, $form_state);
+    $this->configuration['column_widths'] = $form_state->getValue('column_widths');
+    $this->configuration['background_image'] = $form_state->getValue('background_image');
+    $this->configuration['layout_class'] = $form_state->getValue('layout_class');
+    if (!empty($this->configuration['background_image'][0])) {
+      $fid = $this->configuration['background_image'][0];
+      $file = File::load($fid);
+      $file->setPermanent();
+      $file->save();
+    }
   }
 
   /**
@@ -40,6 +76,19 @@ abstract class MultipleWidthLayoutBase extends LayoutDefault implements PluginFo
    */
   public function build(array $regions) {
     $build = parent::build($regions);
+    if (!empty($this->configuration['background_image'][0])) {
+      $fid = $this->configuration['background_image'][0];
+      $file = File::load($fid);
+      $file_uri = $file->getFileUri();
+      $url = file_create_url($file_uri);
+      $build['#attributes']['style'] = 'background-image: url(' . $url . ')';
+    }
+    $build['#attributes']['class'] = [
+      'layout',
+      $this->getPluginDefinition()->getTemplate(),
+      $this->getPluginDefinition()->getTemplate() . '--' . $this->configuration['column_widths'],
+      $this->configuration['layout_class'],
+    ];
     return $build;
   }
 
@@ -55,4 +104,4 @@ abstract class MultipleWidthLayoutBase extends LayoutDefault implements PluginFo
    */
   abstract protected function getWidthOptions();
 
-}
+}
\ No newline at end of file
