diff --git a/tutorial/alterl/server.erl b/tutorial/alterl/server.erl
new file mode 100644
index 0000000..bbb169c
--- /dev/null
+++ b/tutorial/alterl/server.erl
@@ -0,0 +1,63 @@
+-module(server).
+
+-include("calculator_thrift.hrl").
+
+-export([start/0, start/1, handle_function/2,
+         stop/1, ping/0, add/2, calculate/2, getStruct/1, zip/0]).
+
+debug(Format, Data) ->
+    error_logger:info_msg(Format, Data).
+
+ping() ->
+    debug("ping()",[]),
+    ok.
+
+add(N1, N2) ->
+    debug("add(~p,~p)",[N1,N2]),
+    N1+N2.
+
+calculate(Logid, Work) ->
+    { Op, Num1, Num2 } = { Work#work.op, Work#work.num1, Work#work.num2 },
+    debug("calculate(~p, {~p,~p,~p})", [Logid, Op, Num1, Num2]),
+    case Op of
+        ?tutorial_ADD      -> Num1 + Num2;
+	?tutorial_SUBTRACT -> Num1 - Num2;
+	?tutorial_MULTIPLY -> Num1 * Num2;
+
+	?tutorial_DIVIDE when Num2 == 0 ->
+	    throw(#invalidOperation{what=Op, why="Cannot divide by 0"});
+	?tutorial_DIVIDE ->
+	    Num1 div Num2;
+
+	_Else ->
+	    throw(#invalidOperation{what=Op, why="Invalid operation"})
+    end.
+
+getStruct(Key) ->
+    debug("getStruct(~p)", [Key]),
+    #sharedStruct{key=Key, value="RARG"}.
+
+zip() ->
+    debug("zip", []),
+    ok.
+
+%%
+
+start() ->
+    start(9999).
+
+start(Port) ->
+    Handler   = ?MODULE,
+    thrift_socket_server:start([{handler, Handler},
+                                {service, calculator_thrift},
+                                {port, Port},
+                                {name, tutorial_server}]).
+
+stop(Server) ->
+    thrift_socket_server:stop(Server).
+
+handle_function(Function, Args) when is_atom(Function), is_tuple(Args) ->
+    case apply(?MODULE, Function, tuple_to_list(Args)) of
+        ok -> ok;
+        Reply -> {reply, Reply}
+    end.
