reason :: term
return_values :: {:noreply, state} | {:noreply, state, timeout | :hibernate} | {:stop, reason}
state :: term