 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


  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.  In the case of
  GenServer's, there are 8 different values a callback such as
  `handle_call` or `handle_cast` can return:

      { :reply, reply, new_state }


  There are 6 callbacks required to be implemented in a GenServer. The
  `GenServer.Behaviour` module defines all of them automatically, but
  allows us to customize the ones we need. The required callbacks are:

  * `init(args)` - invoked when the server is started;
  * `handle_call(msg, from, state)` - invoked to handle call messages;
