diff --git a/hyrax/app/assets/javascripts/date_picker_options.js b/hyrax/app/assets/javascripts/date_picker_options.js
index c101bba22c9c9b939be7749a9e7d64b6dc7881d1..13a753bdc48b606637c36fdc90a0ef376358ea63 100644
--- a/hyrax/app/assets/javascripts/date_picker_options.js
+++ b/hyrax/app/assets/javascripts/date_picker_options.js
@@ -1,6 +1,6 @@
 Blacklight.onLoad(function() {
  // $.fn.datepicker.defaults.format = "dd/mm/yyyy";
- $("#complex_session_session_date_recorded").datepicker({
+ $('[data-provide="datepicker"]').datepicker({
   orientation: "bottom left"
 });
 });
diff --git a/hyrax/app/helpers/hyrax/listeners/lifecycle_listener_helper.rb b/hyrax/app/helpers/hyrax/listeners/lifecycle_listener_helper.rb
index 0611c960782a90ec8f326b3eef47487f1cb627dc..714cce1aede3ae9f429477f65e027f2308a8fa0d 100644
--- a/hyrax/app/helpers/hyrax/listeners/lifecycle_listener_helper.rb
+++ b/hyrax/app/helpers/hyrax/listeners/lifecycle_listener_helper.rb
@@ -44,8 +44,8 @@ module Hyrax
 
       def after_destroy_callbacks(object)
         case object.class.name
-        when 'Crc1280Experiment'
-          object.complex_subjects.destroy_all
+        when 'Crc1280Experiment', 'Dataset'
+          object.clear_s3_and_all_associated_objects
         when 'FileSet'
           destroy_set_meta_data(object)
         end
diff --git a/hyrax/app/models/concerns/s3_file_handleable.rb b/hyrax/app/models/concerns/s3_file_handleable.rb
index c7cc1580d211fc573401b5621962a340b6b58373..73c40f99a6b097f11c263883a487971f9cede974 100644
--- a/hyrax/app/models/concerns/s3_file_handleable.rb
+++ b/hyrax/app/models/concerns/s3_file_handleable.rb
@@ -18,7 +18,8 @@ module S3FileHandleable
     if self.class.in?([Dataset, Crc1280Experiment])
       bucket_name = s3.sanitise_name(ENV.fetch("S3_FILE_UPLOAD_BUCKET"))
       user = ::User.find_by_user_key(self.depositor)
-      s3.delete_bucket(bucket_name)
+      all_objects, size = s3.list_all_objects(bucket_name, self.id.to_s)
+      s3.delete_objects(bucket_name, all_objects.map { |obj| obj[:key] }) if all_objects.present?
       if self.class == Crc1280Experiment
         self.complex_subjects.destroy_all
       end
@@ -27,7 +28,7 @@ module S3FileHandleable
       user = ::User.find_by_user_key(self.crc1280_experiment.depositor)
       objects_prefix = objects_prefix(self, s3_folder_name)
       all_objects, size = s3.list_all_objects(bucket_name, objects_prefix)
-      s3.delete_objects(bucket_name, all_objects.map{|obj| obj[:key]})
+      s3.delete_objects(bucket_name, all_objects.map{|obj| obj[:key]}) if all_objects.present?
     end
 
     self.file_sets.each do |file_set|
diff --git a/hyrax/app/models/dataset.rb b/hyrax/app/models/dataset.rb
index c7290ef6a2dd1f3652f291cc37344e51dd78063b..b12f4b88b3c1694b71e266c0869976f98f957a2d 100644
--- a/hyrax/app/models/dataset.rb
+++ b/hyrax/app/models/dataset.rb
@@ -13,6 +13,7 @@ class Dataset < Hyrax::Work
   include CommonWorksQuery
   include ::Hyrax::TombstoneBehavior
   include ExternalServices
+  include S3FileHandleable
 
   def default_admin_set
     AdminSetHelper.find_admin_set_by_property(title: [ENV.fetch('RUB_ADMIN_SET_TITLE', 'RUB publication workflow')])
diff --git a/hyrax/config/metadata/crc1280_experiment.yaml b/hyrax/config/metadata/crc1280_experiment.yaml
index 96e373709b62087f1f5d9f69662165fc46e67aba..15488802eede1f3956d86666d5369884b8bc8dfa 100644
--- a/hyrax/config/metadata/crc1280_experiment.yaml
+++ b/hyrax/config/metadata/crc1280_experiment.yaml
@@ -49,6 +49,7 @@ attributes:
     predicate: http://www.example.com/vocabs/rdms/isTombstone
   format:
     type: string
+    multiple: true
     index_keys:
       - "format_ssim"
     predicate: http://www.example.com/vocabs/rdms/format
diff --git a/hyrax/config/metadata/dataset.yaml b/hyrax/config/metadata/dataset.yaml
index 13cd7a7e87d1a5393ebb4e0227678db462750edf..45b7129555a07b7f7d4cc513407268351664e549 100644
--- a/hyrax/config/metadata/dataset.yaml
+++ b/hyrax/config/metadata/dataset.yaml
@@ -49,6 +49,7 @@ attributes:
     predicate: http://www.example.com/vocabs/rdms/isTombstone
   format:
     type: string
+    multiple: true
     index_keys:
       - "format_ssim"
     predicate: http://www.example.com/vocabs/rdms/format