Can somebody help me distinguish When we create methods inside `class << self` block and when we define normal methods. 

I saw somewhere code like this, but I don't know concisely the use cases of them

```
class Foo
  def initialize
  end

  def bar
  end

  class << self
    def foobar
    end
  end
end

```