diff --git a/hyrax/app/controllers/hyrax/crc1280_experiments/complex_modalities_controller.rb b/hyrax/app/controllers/hyrax/crc1280_experiments/complex_modalities_controller.rb
index 9a6b84adfb9b00eb5f37bd75a3d6147b6ff088fb..0644b0e7fe2e823896d82f58fddb58fcc3b0cec4 100644
--- a/hyrax/app/controllers/hyrax/crc1280_experiments/complex_modalities_controller.rb
+++ b/hyrax/app/controllers/hyrax/crc1280_experiments/complex_modalities_controller.rb
@@ -67,7 +67,7 @@ module Hyrax
       private
 
       def set_crc1280_experiment
-        @crc1280_experiment = ::Hyrax.query_service.find_by(id: params[:crc1280_experiment_id])
+        @crc1280_experiment = Crc1280Experiment.find(params[:crc1280_experiment_id])
       end
 
       def set_complex_session
diff --git a/hyrax/app/controllers/hyrax/crc1280_experiments/complex_sessions_controller.rb b/hyrax/app/controllers/hyrax/crc1280_experiments/complex_sessions_controller.rb
index 9bd3c041d5cf1042ae0d4849cf7058118ef15ecf..1f641c6f88ab0f793a5ebcb9c733ba9967282b2f 100644
--- a/hyrax/app/controllers/hyrax/crc1280_experiments/complex_sessions_controller.rb
+++ b/hyrax/app/controllers/hyrax/crc1280_experiments/complex_sessions_controller.rb
@@ -70,7 +70,7 @@ module Hyrax
       private
 
       def set_crc1280_experiment
-        @crc1280_experiment = ::Hyrax.query_service.find_by(id: params[:crc1280_experiment_id])
+        @crc1280_experiment = Crc1280Experiment.find(params[:crc1280_experiment_id])
       end
 
       def set_complex_subject
diff --git a/hyrax/app/controllers/hyrax/crc1280_experiments/complex_subjects_controller.rb b/hyrax/app/controllers/hyrax/crc1280_experiments/complex_subjects_controller.rb
index d99a7b384bf9fa4df869de2e95fefa3dde0ca144..35e17a9e5b305448deb965e8af4703ce883c7c0e 100644
--- a/hyrax/app/controllers/hyrax/crc1280_experiments/complex_subjects_controller.rb
+++ b/hyrax/app/controllers/hyrax/crc1280_experiments/complex_subjects_controller.rb
@@ -64,7 +64,7 @@ module Hyrax
       private
 
       def set_crc1280_experiment
-        @crc1280_experiment = ::Hyrax.query_service.find_by(id: params[:crc1280_experiment_id])
+        @crc1280_experiment = Crc1280Experiment.find(params[:crc1280_experiment_id])
       end
 
       def set_complex_subject
diff --git a/hyrax/app/controllers/hyrax/crc1280_experiments_controller.rb b/hyrax/app/controllers/hyrax/crc1280_experiments_controller.rb
index d4672000862333b9745ba2324983253e3391e5a4..c100748146f3466cfc8a546153045bd0d3c04a69 100644
--- a/hyrax/app/controllers/hyrax/crc1280_experiments_controller.rb
+++ b/hyrax/app/controllers/hyrax/crc1280_experiments_controller.rb
@@ -46,7 +46,7 @@ module Hyrax
     private
 
     def check_tombstone
-      @crc1280_experiment = Hyrax.query_service.find_by(id: params[:id])
+      @crc1280_experiment = Crc1280Experiment.find(params[:id])
       if current_user.present? && (current_user.publication_manager? || current_user.admin?)
         if @crc1280_experiment.is_tombstoned == true && params[:action] == 'edit'
           redirect_to main_app.polymorphic_path(@crc1280_experiment)
@@ -62,7 +62,7 @@ module Hyrax
     def redirect_to_default_collection
       return if params.has_key?(:add_works_to_collection)
 
-      collection = Hyrax::PcdmCollection.where(title: [ENV.fetch('CRC_1280_COLLECTION', "CRC 1280")]).first
+      collection = Hyrax::PcdmCollection.find_by(title: [ENV.fetch('CRC_1280_COLLECTION', "CRC 1280")])
 
       flash[:notice] = "You need to navigate to your group to create an experiment."
       redirect_to dashboard_collection_path(collection.id)
@@ -70,10 +70,9 @@ module Hyrax
  
     def build_breadcrumbs
       return super if ['show', 'edit'].exclude?(action_name)
-  
-      work = Hyrax.query_service.find_by(id: presenter.id)
-      parent_group_collection = Hyrax.query_service.custom_queries.find_parent_collections(resource: work).first
-      crc_1280_collection = Hyrax.query_service.custom_queries.find_parent_collections(resource: parent_group_collection).first if parent_group_collection
+      work = Crc1280Experiment.find(presenter.id)
+      parent_group_collection = work.parent_collections.first
+      crc_1280_collection =  parent_group_collection.parent_collections.first if parent_group_collection
 
       add_breadcrumb t(:'hyrax.controls.home'), root_path
       add_breadcrumb crc_1280_collection.title.first, dashboard_collection_path(crc_1280_collection.id) if crc_1280_collection.present?
diff --git a/hyrax/app/controllers/hyrax/dashboard/collections_controller.rb b/hyrax/app/controllers/hyrax/dashboard/collections_controller.rb
index e2df45ef10c9fcb108f2ec543bf45eefbfe11f23..ea9f4eca03ddaee9c3c9bc337df3c3073feb5c30 100644
--- a/hyrax/app/controllers/hyrax/dashboard/collections_controller.rb
+++ b/hyrax/app/controllers/hyrax/dashboard/collections_controller.rb
@@ -485,17 +485,17 @@ module Hyrax
       end
 
       def move_members_between_collections
+        
         remove_members_from_collection
         add_members_to_collection(collection_id: params[:destination_collection_id])
-
         destination_title =
-          Hyrax.query_service.find_by(id: params[:destination_collection_id]).title.first ||
+          Hyrax::PcdmCollection.find(params[:destination_collection_id]).title.first ||
           params[:destination_collection_id]
         flash[:notice] = "Successfully moved #{batch.count} files to #{destination_title} Collection."
       rescue StandardError => err
         Hyrax.logger.error(err)
         destination_title =
-          Hyrax.query_service.find_by(id: params[:destination_collection_id]).title.first ||
+        Hyrax::PcdmCollection.find(params[:destination_collection_id]).title.first ||
           destination_id
         flash[:error] = "An error occured. Files were not moved to #{destination_title} Collection."
       end
diff --git a/hyrax/app/controllers/hyrax/datasets_controller.rb b/hyrax/app/controllers/hyrax/datasets_controller.rb
index 0e549fb7c215e1803c79cbd614fc9579c2c76783..e68042f1aadd7e1f8d42c94670429efa3fc8ea23 100644
--- a/hyrax/app/controllers/hyrax/datasets_controller.rb
+++ b/hyrax/app/controllers/hyrax/datasets_controller.rb
@@ -22,7 +22,7 @@ module Hyrax
     private
 
     def check_tombstone
-      @dataset =  Hyrax.query_service.find_by(id: params[:id])
+      @dataset =  Dataset.find(params[:id])
 
       if current_user.nil?
         if @dataset.is_tombstoned == true
diff --git a/hyrax/app/factories/bulkrax/valkyrie_object_factory.rb b/hyrax/app/factories/bulkrax/valkyrie_object_factory.rb
index 837330b067c01e37c824ca6345d6dfbb8cff1c89..3eec53a9969a0e39461d0a5f4040b166ca8faac3 100644
--- a/hyrax/app/factories/bulkrax/valkyrie_object_factory.rb
+++ b/hyrax/app/factories/bulkrax/valkyrie_object_factory.rb
@@ -142,9 +142,9 @@ module Bulkrax
       if resource.respond_to?(:save!)
         resource.save!
       else
-        result = Hyrax.persister.save(resource: resource)
+        result = resource.save
         raise Valkyrie::Persistence::ObjectNotFoundError unless result
-        Hyrax.index_adapter.save(resource: result)
+        result.save_index
         if result.collection?
           publish('collection.metadata.updated', collection: result, user: user)
         else
@@ -156,7 +156,7 @@ module Bulkrax
 
     def self.update_index(resources:)
       Array(resources).each do |resource|
-        Hyrax.index_adapter.save(resource: resource)
+        resource.save_index
       end
     end
 
@@ -202,16 +202,14 @@ module Bulkrax
 
     def self.ordered_file_sets_for(object)
       return [] if object.blank?
-
-      Hyrax.custom_queries.find_child_file_sets(resource: object)
+      object.child_filesets
     end
 
     def delete(user)
       obj = find
       return false unless obj
-
-      Hyrax.persister.delete(resource: obj)
-      Hyrax.index_adapter.delete(resource: obj)
+      obj.delete
+      obj.delete_index
       self.class.publish(event: 'object.deleted', object: obj, user: user)
     end
 
@@ -230,7 +228,7 @@ module Bulkrax
       return if @object.depositor.present?
 
       @object.depositor = @user.email
-      object = Hyrax.persister.save(resource: @object)
+      object = @object.save
       self.class.publish(event: "object.metadata.updated", object: object, user: @user)
       object
     end
@@ -476,7 +474,7 @@ module Bulkrax
 
     # @Override Destroy existing files with Hyrax::Transactions
     def destroy_existing_files
-      existing_files = Hyrax.custom_queries.find_child_file_sets(resource: object)
+      existing_files = object.child_filesets
 
       existing_files.each do |fs|
         transactions["file_set.destroy"]
diff --git a/hyrax/app/helpers/admin_set_helper.rb b/hyrax/app/helpers/admin_set_helper.rb
index 1db3b1f2af30eab2edee36463623dbf11f3cd92e..d30b0bcf547a5a5726df660f13ce9c82e80f77dc 100644
--- a/hyrax/app/helpers/admin_set_helper.rb
+++ b/hyrax/app/helpers/admin_set_helper.rb
@@ -1,5 +1,5 @@
 module AdminSetHelper
-  def self.find_admin_set_by_property(**args)
+  def self.find_by(**args)
     query = <<-SQL
       SELECT * FROM orm_resources
       WHERE metadata @> ?
diff --git a/hyrax/app/helpers/hyrax/listeners/lifecycle_listener_helper.rb b/hyrax/app/helpers/hyrax/listeners/lifecycle_listener_helper.rb
index 795bda0c42c3d5c5d7447917454a090528006589..5a95a55b9451b43fbac47fbf32f8ff9c036c9252 100644
--- a/hyrax/app/helpers/hyrax/listeners/lifecycle_listener_helper.rb
+++ b/hyrax/app/helpers/hyrax/listeners/lifecycle_listener_helper.rb
@@ -14,8 +14,8 @@ module Hyrax
           object = object.register_ark(user: user)
         end
 
-        object = save_object!(object)
-        Hyrax.index_adapter.save(resource: object)
+        object.save
+        object.save_index
         object
       end
 
@@ -25,8 +25,8 @@ module Hyrax
           object = object.set_format_and_size
         end
 
-        object = save_object!(object)
-        Hyrax.index_adapter.save(resource: object)
+        object.save
+        object.save_index
         object
       end
 
@@ -74,10 +74,6 @@ module Hyrax
         s3.delete_object(bucket_name, self.object_key_on_s3)
         parent.update(date_modified: DateTime.now)
       end
-
-      def save_object!(object)
-        Hyrax.persister.save(resource: object)
-      end
     end
   end
 end
\ No newline at end of file
diff --git a/hyrax/app/helpers/hyrax_helper.rb b/hyrax/app/helpers/hyrax_helper.rb
index 850e896e26d4a60cd391df06e6473c69d69f0806..32cba11020bdf3de9eb0c3a8694cbcf17c3ba94d 100644
--- a/hyrax/app/helpers/hyrax_helper.rb
+++ b/hyrax/app/helpers/hyrax_helper.rb
@@ -45,19 +45,19 @@ module HyraxHelper
   end
 
   def manager_role(presenter)
-    Hyrax.query_service.find_by(id: presenter.id).manager_role
+    Hyrax::PcdmCollection.find(presenter.id).manager_role
   end
 
   def member_role(presenter)
-    Hyrax.query_service.find_by(id: presenter.id).member_role
+    Hyrax::PcdmCollection.find(presenter.id).member_role
   end
 
   def manager_role_for_group(presenter)
-    Hyrax.query_service.find_by(id: presenter.id).manager_role_for_group
+   Hyrax::PcdmCollection.find(presenter.id).manager_role_for_group
   end
 
   def member_role_for_group(presenter)
-    Hyrax.query_service.find_by(id: presenter.id).member_role_for_group
+    Hyrax::PcdmCollection.find(presenter.id).member_role_for_group
   end
 
   def can_create_work_in_group?(group_id)
@@ -151,8 +151,7 @@ module HyraxHelper
   def s3_file_download_url_for_file_set(file_set_id)
     s3 = S3StorageService.new
     s3.init_client
-
-    file_set = Hyrax.query_service.find_by(id: file_set_id)
+    file_set = Hyrax::FileSet.find(file_set_id)
     bucket_name = s3.sanitise_name(file_set.parent_work.id)
 
     s3.presigned_url_for_download(bucket_name, file_set.object_key_on_s3)
diff --git a/hyrax/app/jobs/hyrax/file_sets/grant_edit_job.rb b/hyrax/app/jobs/hyrax/file_sets/grant_edit_job.rb
index 093735eaa0e0b7e0bf37fd9f4e3e6af281b85ed6..9980237948a7d7f6317cb25e774ed3370471de3b 100644
--- a/hyrax/app/jobs/hyrax/file_sets/grant_edit_job.rb
+++ b/hyrax/app/jobs/hyrax/file_sets/grant_edit_job.rb
@@ -6,8 +6,7 @@ module Hyrax
       include PermissionJobBehavior
 
       def perform(file_set_id, group_key)
-        file_set = Hyrax.query_service.find_by(id: file_set_id)
-
+        file_set = Hyrax::FileSet.find(file_set_id)
         file_set.edit_groups = file_set.edit_groups.to_a + Array.wrap(group_key) # += works in Ruby 2.6+
         file_set.try(:permission_manager)&.acl&.save
       end
diff --git a/hyrax/app/jobs/hyrax/file_sets/grant_read_job.rb b/hyrax/app/jobs/hyrax/file_sets/grant_read_job.rb
index 23707d0812693353803ddff053986cead21bb08e..b34e52f6bca7f1491e1e35bf84f919496ffacc6c 100644
--- a/hyrax/app/jobs/hyrax/file_sets/grant_read_job.rb
+++ b/hyrax/app/jobs/hyrax/file_sets/grant_read_job.rb
@@ -8,8 +8,7 @@ module Hyrax
       include PermissionJobBehavior
 
       def perform(file_set_id, group_key)
-        file_set = Hyrax.query_service.find_by(id: file_set_id)
-
+        file_set = Hyrax::FileSet.find(file_set_id)
         file_set.read_groups = file_set.read_groups.to_a + Array.wrap(group_key) # += works in Ruby 2.6+
         file_set.try(:permission_manager)&.acl&.save
       end
diff --git a/hyrax/app/jobs/hyrax/file_sets/revoke_edit_job.rb b/hyrax/app/jobs/hyrax/file_sets/revoke_edit_job.rb
index db5349c156ac42e4676f91ed7f02c8b40c8bfb0d..133bda9e2bb68f4bec66484a34b4adc7e72a675b 100644
--- a/hyrax/app/jobs/hyrax/file_sets/revoke_edit_job.rb
+++ b/hyrax/app/jobs/hyrax/file_sets/revoke_edit_job.rb
@@ -8,8 +8,7 @@ module Hyrax
       include PermissionJobBehavior
 
       def perform(file_set_id, group_key)
-        file_set = Hyrax.query_service.find_by(id: file_set_id)
-
+        file_set = Hyrax::FileSet.find(file_set_id)
         file_set.edit_groups = file_set.edit_groups.to_a - Array.wrap(group_key) # += works in Ruby 2.6+
         file_set.try(:permission_manager)&.acl&.save
       end
diff --git a/hyrax/app/jobs/valkyrie_ingest_job.rb b/hyrax/app/jobs/valkyrie_ingest_job.rb
index e29c2bdeda7380ec9375420567bb9f9e11fb9af9..33e016643ba64c341ee9f34af1029e38259a5738 100644
--- a/hyrax/app/jobs/valkyrie_ingest_job.rb
+++ b/hyrax/app/jobs/valkyrie_ingest_job.rb
@@ -24,7 +24,7 @@ class ValkyrieIngestJob < Hyrax::ApplicationJob
   # @return [void]
   def ingest(file:, pcdm_use:)
     file_set_uri = Valkyrie::ID.new(file.file_set_uri)
-    file_set = Hyrax.query_service.find_by(id: file_set_uri)
+    file_set = Hyrax::FileSet.find(file_set_uri)
     upload_file(
       file: file,
       file_set: file_set,
diff --git a/hyrax/app/models/bulkrax/crc_folder_complex_subject_entry.rb b/hyrax/app/models/bulkrax/crc_folder_complex_subject_entry.rb
index d96587ab1c5c78c0d1fb8138045381cdf759167c..91ba8b9d45df9658273f7723b328c499c23569e6 100644
--- a/hyrax/app/models/bulkrax/crc_folder_complex_subject_entry.rb
+++ b/hyrax/app/models/bulkrax/crc_folder_complex_subject_entry.rb
@@ -29,7 +29,7 @@ module Bulkrax
     end
 
     def crc1280_experiment_created?
-      ::Crc1280Experiment.find_by_property(source: [self.raw_metadata['parents']]).present?
+      ::Crc1280Experiment.find_by(source: [self.raw_metadata['parents']]).present?
     end
 
     def validate_and_fix_title
diff --git a/hyrax/app/models/complex_modality.rb b/hyrax/app/models/complex_modality.rb
index c2f0882220b0cd729fa23877a2195737d9db1a59..637da4be04fadb7ba871613bd2043d450bdf19fd 100644
--- a/hyrax/app/models/complex_modality.rb
+++ b/hyrax/app/models/complex_modality.rb
@@ -31,7 +31,7 @@ class ComplexModality < ActiveRecord::Base
   }
 
   def file_sets
-    @file_sets ||= FileSet.where(for_complex_type: ["ComplexModality"], for_complex_identifier: [self.source_identifier])
+    @file_sets ||= Hyrax::FileSet.where(for_complex_type: ["ComplexModality"], for_complex_identifier: [self.source_identifier])
   end
 
   def s3_object_prefix
@@ -69,6 +69,6 @@ class ComplexModality < ActiveRecord::Base
   end
 
   def reindex_parent_work
-    Hyrax.index_adapter.save(resource: crc1280_experiment)
+    crc1280_experiment.save_index
   end
 end
diff --git a/hyrax/app/models/complex_session.rb b/hyrax/app/models/complex_session.rb
index 38ecb059decf8313f330f8083577ef998317582a..2bd9dfcb25992d20661cf7a58be8440f18d4b48a 100644
--- a/hyrax/app/models/complex_session.rb
+++ b/hyrax/app/models/complex_session.rb
@@ -32,7 +32,7 @@ class ComplexSession < ActiveRecord::Base
   }
 
   def file_sets
-    @file_sets ||= FileSet.where(for_complex_type: ["ComplexSession"], for_complex_identifier: [self.source_identifier])
+    @file_sets ||= Hyrax::FileSet.where(for_complex_type: ["ComplexSession"], for_complex_identifier: [self.source_identifier])
   end
 
   def display_date_recorded
@@ -74,6 +74,6 @@ class ComplexSession < ActiveRecord::Base
   end
 
   def reindex_parent_work
-    Hyrax.index_adapter.save(resource: crc1280_experiment)
+    crc1280_experiment.save_index
   end
 end
diff --git a/hyrax/app/models/complex_subject.rb b/hyrax/app/models/complex_subject.rb
index cccbae8f05303f3d47bc52b44a0d98831dc2b78c..fdb2ca2ee69be2e45d2045db77b26c8180f76c97 100644
--- a/hyrax/app/models/complex_subject.rb
+++ b/hyrax/app/models/complex_subject.rb
@@ -30,11 +30,11 @@ class ComplexSubject < ActiveRecord::Base
   } #Thu, 05 Dec 2024 05:36:17 +0000
 
   def crc1280_experiment
-    @crc1280_experiment ||= Crc1280Experiment.find_by_property(source: [parent_source_identifier])
+    @crc1280_experiment ||= Crc1280Experiment.find_by(source: [parent_source_identifier])
   end
 
   def file_sets
-    @file_sets ||= FileSet.where(for_complex_type: ["ComplexSubject"], for_complex_identifier: [self.source_identifier])
+    @file_sets ||= Hyrax::FileSet.where(for_complex_type: ["ComplexSubject"], for_complex_identifier: [self.source_identifier])
   end
 
   def s3_object_prefix
@@ -72,6 +72,6 @@ class ComplexSubject < ActiveRecord::Base
   end
 
   def reindex_parent_work
-    Hyrax.index_adapter.save(resource: crc1280_experiment)
+    crc1280_experiment.save_index
   end
 end
diff --git a/hyrax/app/models/concerns/common_query.rb b/hyrax/app/models/concerns/common_query.rb
new file mode 100644
index 0000000000000000000000000000000000000000..a590fb5f2b76711f1c0d515493391b4ef68caf7f
--- /dev/null
+++ b/hyrax/app/models/concerns/common_query.rb
@@ -0,0 +1,93 @@
+module CommonQuery
+  extend ActiveSupport::Concern
+
+  def parent_collections
+    return [] unless self.persisted?
+    Hyrax.query_service.custom_queries.find_parent_collections(resource: self)
+  end
+
+  def parent_work
+    Hyrax.custom_queries.find_parent_work(resource: self)
+  end 
+
+  def child_filesets
+    Hyrax.custom_queries.find_child_file_sets(resource: self)
+  end 
+
+
+  # save resource
+  def save
+    Hyrax.persister.save(resource: self)
+  end
+
+  def save_index
+    Hyrax.index_adapter.save(resource: self)
+  end 
+  
+
+  # delete resource
+  def delete
+    Hyrax.persister.delete(resource: self)
+  end 
+
+  def delete_index
+    Hyrax.index_adapter.delete(resource: self)
+  end 
+
+
+  # clss methods 
+  class_methods do
+    def find_by(**args)
+      conditions = ["metadata @> ?"]
+      id = args.delete(:id)
+      jsonb_query = args.to_json
+
+      if id.present?
+        if valid_uuid?(id)
+          conditions << "id = '#{id}'"
+        else
+          raise Valkyrie::Persistence::ObjectNotFoundError, "Invalid or missing UUID for id=#{id}"
+        end
+      end
+
+      conditions << "internal_resource = '#{name}'"
+
+      query = <<-SQL
+        SELECT * FROM orm_resources
+        WHERE #{conditions.join(' AND ')};
+      SQL
+
+      Hyrax.query_service.run_query(query, jsonb_query).first
+    end
+
+    def where(**args)
+      query = <<-SQL
+        SELECT * FROM orm_resources
+        WHERE metadata @> ?
+        AND internal_resource = '#{name}';
+      SQL
+
+      jsonb_query = args.to_json
+      Hyrax.query_service.run_query(query, jsonb_query).to_a
+    end
+
+    def find(id)
+      unless id.present? && valid_uuid?(id)
+        raise Valkyrie::Persistence::ObjectNotFoundError, "Invalid or missing UUID for id=#{id}"
+      end
+    
+      result = find_by(id: id)
+    
+      if result.nil?
+        raise Valkyrie::Persistence::ObjectNotFoundError, "Couldn't find resource with id=#{id}"
+      end
+    
+      result
+    end
+
+    def valid_uuid?(string)
+      uuid_regex = /^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$/i
+      uuid_regex.match?(string)
+    end
+  end
+end
diff --git a/hyrax/app/models/concerns/hyrax/tombstone_behavior.rb b/hyrax/app/models/concerns/hyrax/tombstone_behavior.rb
index 9d983f9fdcb30ca123b5f1db9663dcc4c5de3024..12f415f79c223141af84ade5d434a64f437dd245 100644
--- a/hyrax/app/models/concerns/hyrax/tombstone_behavior.rb
+++ b/hyrax/app/models/concerns/hyrax/tombstone_behavior.rb
@@ -5,8 +5,7 @@ module Hyrax
       self.is_tombstoned = true 
       self.tombstone_status = "initiated"
       self.tombstone_date = DateTime.now
-    
-      work = Hyrax.persister.save(resource: self)
+      work = self.save
       Hyrax.publisher.publish('object.metadata.updated', object: work, user: user)
     end
   
@@ -14,8 +13,7 @@ module Hyrax
       return false unless self.is_tombstoned || self.tombstone_status == "initiated"
   
       self.tombstone_status = "deleted"
-      
-      work = Hyrax.persister.save(resource: self)
+      work = self.save
       Hyrax.publisher.publish('object.metadata.updated', object: work, user: user)
 
       Hyrax::RemoveAssociatedObjectsJob.perform_later(work.id.to_s, user.id)
@@ -27,8 +25,7 @@ module Hyrax
   
       self.is_tombstoned = false
       self.tombstone_status = "restored"
-
-      work = Hyrax.persister.save(resource: self)
+      work = self.save
       Hyrax.publisher.publish('object.metadata.updated', object: work, user: user)
     end
   end
diff --git a/hyrax/app/models/concerns/rdms_roles.rb b/hyrax/app/models/concerns/rdms_roles.rb
index 35c4cbf601975ab3056956f17726988746ace239..4f53bef1ea0ccc8a36320995144f6faf666b2691 100644
--- a/hyrax/app/models/concerns/rdms_roles.rb
+++ b/hyrax/app/models/concerns/rdms_roles.rb
@@ -26,7 +26,7 @@ module RdmsRoles
   end
 
   def crc_manager_for?(group_id)
-    group =  Hyrax.query_service.find_by(id: group_id) rescue nil
+    group =  Hyrax::PcdmCollection.find(group_id) rescue nil
     
     return false unless group
     
@@ -35,7 +35,7 @@ module RdmsRoles
   end
 
   def group_manager_for?(group_id)
-    group =  Hyrax.query_service.find_by(id: group_id) rescue nil
+    group =  Hyrax::PcdmCollection.find(group_id) rescue nil
     
     return false unless group
     
@@ -44,7 +44,7 @@ module RdmsRoles
   end
 
   def crc_member_for?(group_id)
-    group =  Hyrax.query_service.find_by(id: group_id) rescue nil
+    group =  Hyrax::PcdmCollection.find(group_id) rescue nil
     
     return false unless group
     
@@ -53,7 +53,7 @@ module RdmsRoles
   end
 
   def group_member_for?(group_id)
-    group =  Hyrax.query_service.find_by(id: group_id) rescue nil
+    group =  Hyrax::PcdmCollection.find(group_id) rescue nil
     
     return false unless group
     
diff --git a/hyrax/app/models/concerns/s3_file_handleable.rb b/hyrax/app/models/concerns/s3_file_handleable.rb
index 73c40f99a6b097f11c263883a487971f9cede974..6cccc4dc1deab377804b650fd54d7ea8baddb74b 100644
--- a/hyrax/app/models/concerns/s3_file_handleable.rb
+++ b/hyrax/app/models/concerns/s3_file_handleable.rb
@@ -75,7 +75,7 @@ module S3FileHandleable
     crc1280_experiment.files_size = [total_size.to_s]
     crc1280_experiment.format = list_of_format
 
-    Hyrax.persister.save(resource: crc1280_experiment)
+    crc1280_experiment.save
   end
 
 
diff --git a/hyrax/app/models/crc1280_experiment.rb b/hyrax/app/models/crc1280_experiment.rb
index d71d299f7ea31a92503eacc668c0a4b932d08614..efe74a416355498de8ecafa58c47abcdc39af5e8 100644
--- a/hyrax/app/models/crc1280_experiment.rb
+++ b/hyrax/app/models/crc1280_experiment.rb
@@ -10,7 +10,7 @@ class Crc1280Experiment < Hyrax::Work
   attribute :complex_identifier , Valkyrie::Types::Array.of(Valkyrie::Types::String)
   include Hyrax::Schema(:basic_metadata)
   include Hyrax::Schema(:crc1280_experiment)
-  include CommonWorksQuery
+  include CommonQuery
   include ::Hyrax::TombstoneBehavior
   include ExternalServices
   include S3FileHandleable
@@ -32,22 +32,11 @@ class Crc1280Experiment < Hyrax::Work
   ] + CRC_FILTER_FACET_FIELDS
 
   def default_admin_set
-    AdminSetHelper.find_admin_set_by_property(title: [ENV.fetch('CRC_ADMIN_SET_TITLE', 'CRC 1280 Publishing Workflow')])
-  end
-
-  def self.find_by_property(**args)
-    query = <<-SQL
-      SELECT * FROM orm_resources
-      WHERE metadata @> ?
-      AND internal_resource = 'Crc1280Experiment';
-    SQL
-
-    jsonb_query = args.to_json
-    Hyrax.query_service.run_query(query, jsonb_query).first
+    AdminSetHelper.find_by(title: [ENV.fetch('CRC_ADMIN_SET_TITLE', 'CRC 1280 Publishing Workflow')])
   end
 
   def file_sets
-    @file_sets ||= FileSet.where(for_complex_type: ["Crc1280Experiment"], for_complex_identifier: self.source)
+    @file_sets ||= Hyrax::FileSet.where(for_complex_type: ["Crc1280Experiment"], for_complex_identifier: self.source)
   end
 
   def complex_subjects
@@ -63,7 +52,7 @@ class Crc1280Experiment < Hyrax::Work
   end
 
   def apply_parent_permissions
-    parent =  Hyrax.custom_queries.find_parent_collections(resource: self).first
+    parent = self.parent_collections.first
     if parent.present?
       template = Hyrax::PermissionTemplate.find_by(source_id: parent.id.to_s)
       self.edit_groups += template.agent_ids_for(agent_type: 'group', access: 'manage')
diff --git a/hyrax/app/models/dataset.rb b/hyrax/app/models/dataset.rb
index b12f4b88b3c1694b71e266c0869976f98f957a2d..48f2af82a62935797425d6cf0ed0c7161d180718 100644
--- a/hyrax/app/models/dataset.rb
+++ b/hyrax/app/models/dataset.rb
@@ -10,28 +10,17 @@ class Dataset < Hyrax::Work
   attribute :complex_identifier , Valkyrie::Types::Array.of(Valkyrie::Types::String)
   include Hyrax::Schema(:basic_metadata)
   include Hyrax::Schema(:dataset)
-  include CommonWorksQuery
+  include CommonQuery
   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')])
-  end
-
-  def self.find_by_property(**args)
-    query = <<-SQL
-      SELECT * FROM orm_resources
-      WHERE metadata @> ?
-      AND internal_resource = 'Dataset';
-    SQL
-
-    jsonb_query = args.to_json
-    Hyrax.query_service.run_query(query, jsonb_query).first
+    AdminSetHelper.find_by(title: [ENV.fetch('RUB_ADMIN_SET_TITLE', 'RUB publication workflow')])
   end
 
   def file_sets
-    @file_sets ||= Hyrax.custom_queries.find_child_file_sets(resource: self)
+    @file_sets ||= self.child_filesets
   end
 end
 
diff --git a/hyrax/app/models/hyrax/file_set.rb b/hyrax/app/models/hyrax/file_set.rb
index f5b38e3946a8cf875278e6b4930a9a3b1f3bba67..5cdad76c3e693dd4f8586bcd4b3c4f9ec30a42c8 100644
--- a/hyrax/app/models/hyrax/file_set.rb
+++ b/hyrax/app/models/hyrax/file_set.rb
@@ -51,6 +51,7 @@ module Hyrax
   class FileSet < Hyrax::Resource
     include Hyrax::Schema(:core_metadata)
     include Hyrax::Schema(:file_set_metadata)
+    include CommonQuery
 
     attribute :for_complex_identifier, Valkyrie::Types::String
     attribute :for_complex_type, Valkyrie::Types::String
@@ -128,22 +129,6 @@ module Hyrax
       true
     end
 
-    def self.where(**args)
-      query = <<-SQL
-        SELECT * FROM orm_resources
-        WHERE metadata @> ?
-        AND internal_resource = 'Hyrax::FileSet';
-      SQL
-
-      jsonb_query = args.to_json
-
-      Hyrax.query_service.run_query(query, jsonb_query).to_a
-    end
-
-    def parent_work
-      Hyrax.custom_queries.find_parent_work(resource: self)
-    end
-
     def parent_object
       case for_complex_type
       when 'ComplexSubject'
diff --git a/hyrax/app/models/hyrax/pcdm_collection.rb b/hyrax/app/models/hyrax/pcdm_collection.rb
index 41fe97e6d7ba10a2eb082684e2eb2f2690e093ce..c5c213ec917db2cd406bd6f2682075ba472cf8f1 100644
--- a/hyrax/app/models/hyrax/pcdm_collection.rb
+++ b/hyrax/app/models/hyrax/pcdm_collection.rb
@@ -42,6 +42,7 @@ module Hyrax
   class PcdmCollection < Hyrax::Resource
     include Hyrax::Schema(:core_metadata)
     include Hyrax::Schema(:collection_metadata)
+    include CommonQuery
 
     attribute :collection_type_gid, Valkyrie::Types::String
     attribute :member_ids, Valkyrie::Types::Array.of(Valkyrie::Types::ID).meta(ordered: true)
@@ -94,22 +95,6 @@ module Hyrax
       Role.find_by_name("#{collection_type.title.parameterize(separator: '_')}_#{id}_member")
     end
 
-    def parent_collections
-      Hyrax.custom_queries.find_parent_collections(resource: self)
-     
-    end
-
-    def self.where(**args)
-      query = <<-SQL
-        SELECT * FROM orm_resources
-        WHERE metadata @> ?
-        AND internal_resource = 'Hyrax::PcdmCollection';
-      SQL
-  
-      jsonb_query = args.to_json
-      Hyrax.query_service.run_query(query, jsonb_query)
-    end
-
     protected
 
     def visibility_writer
diff --git a/hyrax/app/models/user.rb b/hyrax/app/models/user.rb
index 0655722696ad5af8d9cb660d42d67e068b8bce51..1b1b76e8bba8758145bcba926c931ef4ab31926d 100644
--- a/hyrax/app/models/user.rb
+++ b/hyrax/app/models/user.rb
@@ -238,7 +238,7 @@ class User < ApplicationRecord
   private
   
   def handle_crc_1280_manager_role(action)
-    admin_set = AdminSetHelper.find_admin_set_by_property(title: [ENV.fetch('CRC_ADMIN_SET_TITLE', 'CRC 1280 Publishing Workflow')])
+    admin_set = AdminSetHelper.find_by(title: [ENV.fetch('CRC_ADMIN_SET_TITLE', 'CRC 1280 Publishing Workflow')])
     add_or_remove_responsibility(admin_set, 'approving_crc_manager', action)
   end
   
@@ -249,19 +249,19 @@ class User < ApplicationRecord
     ]
 
     titles.each do |title|
-      admin_set = AdminSetHelper.find_admin_set_by_property(title: [title])
+      admin_set = AdminSetHelper.find_by(title: [title])
       next if admin_set.nil?
       add_or_remove_responsibility(admin_set, 'approving_publication_manager', action)
     end
   end
   
   def handle_group_manager_role(action)
-    admin_set = AdminSetHelper.find_admin_set_by_property(title: [ENV.fetch('CRC_ADMIN_SET_TITLE', 'CRC 1280 Publishing Workflow')])
+    admin_set = AdminSetHelper.find_by(title: [ENV.fetch('CRC_ADMIN_SET_TITLE', 'CRC 1280 Publishing Workflow')])
     add_or_remove_responsibility(admin_set, 'approving_group_manager', action)
   end
 
   def handle_group_member_role(action)
-    admin_set = AdminSetHelper.find_admin_set_by_property(title: [ENV.fetch('CRC_ADMIN_SET_TITLE', 'CRC 1280 Publishing Workflow')])
+    admin_set = AdminSetHelper.find_by(title: [ENV.fetch('CRC_ADMIN_SET_TITLE', 'CRC 1280 Publishing Workflow')])
     add_or_remove_responsibility(admin_set, 'depositor', action)
   end
 
diff --git a/hyrax/app/presenters/hyrax/crc1280_experiment_presenter.rb b/hyrax/app/presenters/hyrax/crc1280_experiment_presenter.rb
index 79a3f4112c81b0e43845460188e15fa83316db01..648aa61207b91829e26007b1baf1e67d7814877f 100644
--- a/hyrax/app/presenters/hyrax/crc1280_experiment_presenter.rb
+++ b/hyrax/app/presenters/hyrax/crc1280_experiment_presenter.rb
@@ -15,7 +15,7 @@ module Hyrax
         'session' => {},
         'modality' => {}
       }
-      experiment =  Hyrax.query_service.find_by(id: self.id)
+      experiment =  Crc1280Experiment.find(self.id)
 
       # subject filter query if filter available
       subject_query = build_query(subject_field_mappings, options[:filter])
diff --git a/hyrax/app/services/doi_service.rb b/hyrax/app/services/doi_service.rb
index 6c5531dbe27b5fb9993cc6259366450be8bd7510..bc6fa2e008c07c845139708769ad19dd1546fa4c 100644
--- a/hyrax/app/services/doi_service.rb
+++ b/hyrax/app/services/doi_service.rb
@@ -66,7 +66,7 @@ class DoiService
 
     @work.complex_identifier = @work.complex_identifier + [complex_identifier]
     @work.complex_date = @work.complex_date + [complex_date]
-    Hyrax.persister.save(resource: @work)
+    @work.save
     Hyrax.publisher.publish('object.metadata.updated', object: @work, user: user)
   end
 end
\ No newline at end of file
diff --git a/hyrax/app/services/hyrax/collections/permissions_create_service.rb b/hyrax/app/services/hyrax/collections/permissions_create_service.rb
index e341d8382e5b7d6cfc29c4fac26a24f57eaadd42..0d09910a59a7850857be2e0b4eaa0b1e6d474971 100644
--- a/hyrax/app/services/hyrax/collections/permissions_create_service.rb
+++ b/hyrax/app/services/hyrax/collections/permissions_create_service.rb
@@ -44,7 +44,7 @@ module Hyrax
         #       access: Hyrax::PermissionTemplateAccess::DEPOSIT } ]
         # @see Hyrax::PermissionTemplateAccess for valid values for agent_type and access
         def add_access(collection_id:, grants:)
-          collection = Hyrax.query_service.find_by(id: collection_id)
+          collection = Hyrax::PcdmCollection.find(collection_id)
           template = Hyrax::PermissionTemplate.find_by!(source_id: collection_id.to_s)
           grants.each do |grant|
             Hyrax::PermissionTemplateAccess.find_or_create_by(permission_template_id: template.id.to_s,
diff --git a/hyrax/app/services/hyrax/valkyrie_upload.rb b/hyrax/app/services/hyrax/valkyrie_upload.rb
index ef52eafac9f1ea1c759d45398e005d428dec6629..ff9749c2b004272c00766e07a3ae39a5c046fdb4 100644
--- a/hyrax/app/services/hyrax/valkyrie_upload.rb
+++ b/hyrax/app/services/hyrax/valkyrie_upload.rb
@@ -143,7 +143,7 @@ class Hyrax::ValkyrieUpload
   # @return [Hyrax::FileSet] updated file set
   def add_file_to_file_set(file_set:, file_metadata:, user:)
     file_set.file_ids += [file_metadata.id]
-    Hyrax.persister.save(resource: file_set)
+    file_set.save
     Hyrax.publisher.publish('object.membership.updated', object: file_set, user: user)
   end
 
diff --git a/hyrax/app/services/verify_crc_dataset_import.rb b/hyrax/app/services/verify_crc_dataset_import.rb
index 462bb01787b4f284dcd1051a37059aaa2734473e..0719695b6e135a8ea68b26f56d99f741924dc01b 100644
--- a/hyrax/app/services/verify_crc_dataset_import.rb
+++ b/hyrax/app/services/verify_crc_dataset_import.rb
@@ -119,7 +119,7 @@ class VerifyCrcDatasetImport
     end
 
     # Get CrcDataset for the entry
-    works = Crc1280Experiment.find_by_property(source: [entry.identifier])
+    works = Crc1280Experiment.find_by(source: [entry.identifier])
     unless works.present?
       msg = "The CrcDataset with source identifier #{entry.identifier} was not found"
       return false, msg, paths_compared, nil
diff --git a/hyrax/app/views/hyrax/crc1280_experiments/_all_children.html.erb b/hyrax/app/views/hyrax/crc1280_experiments/_all_children.html.erb
index fa3c6712e2bc5bea8a12448de308e6ba11eb9cba..0c9cddddcce39f53cc2dd81b073509d8e8697516 100644
--- a/hyrax/app/views/hyrax/crc1280_experiments/_all_children.html.erb
+++ b/hyrax/app/views/hyrax/crc1280_experiments/_all_children.html.erb
@@ -1,5 +1,5 @@
 <%
-  member_ids = Hyrax.query_service.custom_queries.find_child_file_sets(resource: work).to_a #+ experiment.complex_subjects&.ids
+  member_ids =  work.child_filesets.to_a #+ experiment.complex_subjects&.ids
 %>
 
 <% if presenter.crc_work_type.present? && presenter.crc_work_type[0] == 'experiment' %>
diff --git a/hyrax/app/views/hyrax/crc1280_experiments/_parent_collection.html.erb b/hyrax/app/views/hyrax/crc1280_experiments/_parent_collection.html.erb
index e20a5e9c7cb461a9fa20bca4d0c8a0fc44b7a6c3..2053a32279da7fdc95c3c2b1f3f27928b6479475 100644
--- a/hyrax/app/views/hyrax/crc1280_experiments/_parent_collection.html.erb
+++ b/hyrax/app/views/hyrax/crc1280_experiments/_parent_collection.html.erb
@@ -1,4 +1,4 @@
-<% parent_collections = Hyrax.query_service.custom_queries.find_parent_collections(resource: collection) %>
+<% parent_collections = collection.parent_collections %>
 <% if parent_collections.present? %>
   <% parent_collections.each do |collection| %>
     <%= render 'parent_collection', collection: collection %>
diff --git a/hyrax/app/views/hyrax/crc1280_experiments/_title.html.erb b/hyrax/app/views/hyrax/crc1280_experiments/_title.html.erb
index 09c40f395ec672ae57360239ef4aebc7d18b6283..122f757237c99c0d891c7acda8f76ea2fb25ff8d 100644
--- a/hyrax/app/views/hyrax/crc1280_experiments/_title.html.erb
+++ b/hyrax/app/views/hyrax/crc1280_experiments/_title.html.erb
@@ -14,14 +14,6 @@
           </h2>
         <% end %>
       <% end %>
-      <div class="row">
-        <% if is_published?(presenter) %>
-          <div class="col-md-3">
-            <%= render 'citations', presenter: @presenter %>
-            <%= render 'social_media' %>
-          </div>
-        <% end %>
-      </div>
     </div>
   </div>
 </div>
\ No newline at end of file
diff --git a/hyrax/app/views/hyrax/crc1280_experiments/show.html.erb b/hyrax/app/views/hyrax/crc1280_experiments/show.html.erb
index 202e8e76d5d66b3d5bb0ffddebd0f29e6dabd291..108f4354b568a92a9770a4429ce511a3f42ad260 100644
--- a/hyrax/app/views/hyrax/crc1280_experiments/show.html.erb
+++ b/hyrax/app/views/hyrax/crc1280_experiments/show.html.erb
@@ -1,5 +1,5 @@
 <% presenter ||= @presenter %>
-<% work = Hyrax.query_service.find_by(id: presenter.id) %>
+<% work = Crc1280Experiment.find(presenter.id) %>
 <% filter = params[:filter].present? ? params[:filter].permit!.to_h : {} %>
 <div class="row show-work">
   <div class="col-md-12 work-type">
diff --git a/hyrax/config/initializers/downloads_controller_override.rb b/hyrax/config/initializers/downloads_controller_override.rb
index 7fd9bd026efe814bbdc627327c03b907010f551e..f5efb423a71af5f9448bd457da4919e657242c86 100644
--- a/hyrax/config/initializers/downloads_controller_override.rb
+++ b/hyrax/config/initializers/downloads_controller_override.rb
@@ -10,12 +10,12 @@ Rails.application.config.to_prepare do
             use_valkyrie: Hyrax.config.use_valkyrie?
           )
         else
-          Hyrax.query_service.find_by(id: file_set_id)
+          Hyrax::FileSet.find(file_set_id)
         end
       @parent ||=
         case file_set
         when Hyrax::Resource
-          Hyrax.query_service.find_parents(resource: file_set).first
+          file_set.parent_work
         else
           file_set.parent
         end
diff --git a/hyrax/config/initializers/riiif.rb b/hyrax/config/initializers/riiif.rb
index eace5cdad8e018f71c00c28ba3c16846b022621f..25edd426fee365ebb0f0e5dd60f37bfb8d469fa1 100644
--- a/hyrax/config/initializers/riiif.rb
+++ b/hyrax/config/initializers/riiif.rb
@@ -97,8 +97,8 @@ module Hyrax
     def load_file(id)
       benchmark "RiiifFileResolver loaded #{id}", level: :debug do
         fs_id = id.sub(/\A([^\/]*)\/.*/, '\1')
-        file_set = Hyrax.query_service.find_by(id: fs_id)
-        file_metadata = Hyrax.custom_queries.find_original_file(file_set: file_set)
+        file_set = Hyrax::FileSet.find(fs_id)
+        file_metadata = file_set.original_file
         file_metadata.file.disk_path.to_s # Stores a local copy in tmpdir
       end
     end
diff --git a/hyrax/lib/tasks/default_admin_set_for_workflow.rake b/hyrax/lib/tasks/default_admin_set_for_workflow.rake
index c0a5b7764c29879adfb05b786161c271e99ab740..5955eabf1ab6499d6a7a47b67f583075a376f97d 100644
--- a/hyrax/lib/tasks/default_admin_set_for_workflow.rake
+++ b/hyrax/lib/tasks/default_admin_set_for_workflow.rake
@@ -12,7 +12,7 @@ namespace :hyrax do
         crc_default_admin_set_title = ENV.fetch('CRC_ADMIN_SET_TITLE', 'CRC 1280 Publishing Workflow')
 
         [rub_default_admin_set_title, crc_default_admin_set_title].each do |title|
-          unless AdminSetHelper.find_admin_set_by_property(title: [title]).present?
+          unless AdminSetHelper.find_by(title: [title]).present?
             admin_set = Hyrax::AdministrativeSet.new(title: [title])
             updated_admin_set = Hyrax.persister.save(resource: admin_set)