Sometimes, Spina doesn't fit your needs exactly. Luckily it's very easy to override classes and methods when you really need to. We recommend using the approach mentioned in the Rails Guides which is outlined below.
 Prepare your application
Start by adding the following code to application.rb:
```ruby
# config/application.rb
module MyApp
  class Application < Rails::Application
    # ...
    overrides = "#{Rails.root}/app/overrides"
    Rails.autoloaders.main.ignore(overrides)
    config.to_prepare do
      Dir.glob("#{overrides}/**/*_override.rb").each do |override|
        load override
      end
    end
  end
endOverriding with class_eval
Now you can add files to your app/overrides directory. The simplest way to change a class is to open it using class_eval like this:
```ruby
# app/overrides/controllers/spina/pages_controller_override.rb
module Spina
  PagesController.class_eval do
    def homepage
      # Let's make it shoot out fireworks instead 
      render plain: 🎆
    end
  end
endOverriding with prepend
Using class_eval a lot has some drawbacks, so another way to change Spina's classes is to prepend a module to existing classes. This gives you more control over the way you override functionality.
```ruby
# app/overrides/controllers/spina/pages_controller_override.rb
module Spina
  module PagesControllerOverride
    extend ActiveSupport::Concern
    
    prepended do
      before_action :do_something
    end
    # You can override methods and make them do something else...
    def homepage
      super
    end
    
    # ...or you can add new code
    def do_something
      # do something interesting
    end
  end
end
 
Spina::PagesController.prepend(Spina::PagesControllerOverride)