 defmodule GenServer.Behaviour do
   @moduledoc """
-  This module is a convenience to define GenServer callbacks in Elixir.
+  This module is a convenience for defining GenServer callbacks in Elixir.
 
-  A server is responsible to react to messages received from client
-  and a GenServer is an OTP behaviour that encapsulates common server
+  A server is responsible for reacting to messages received from a client.
+  A GenServer is an OTP behaviour that encapsulates common server
   functionalities.
 
   ## Example
 
-  Bellow follows an example of a GenServer that push and pop items
-  into a stack:
+  Below is an example of a GenServer that pushes and pops items
+  onto a stack:
 
       defmodule MyServer do
         use GenServer.Behaviour

        handle_cast: 2, terminate: 2, code_change: 3]
    end
  end
end

  Notice we never call the server callbacks directly, they are called
  by OTP whenever we interact with the server. **cast** messages are
  asynchronous while **call** ones are synchronous. For a
  GenServer, there are 8 different values a callback such as
  `handle_call` or `handle_cast` can return:

      { :reply, reply, new_state }
