FSM driven, generic turn based game server with component support written in Erlang