diff --git a/source/Data_Types.rst b/source/Data_Types.rst
index 8a78be73b8fa6c9f55c957e68cf25d3d92aa27ae..dc077558a8901080e2c7d5a67ca47cfa18d5ca51 100644
--- a/source/Data_Types.rst
+++ b/source/Data_Types.rst
@@ -277,25 +277,26 @@ We will see how to determine all occurrences of restriction sites when we learn
 Exercise
 --------
 
-We want to perform a PCR on sv40, can you give the length and the sequence of the amplicon?
+We want to perform a PCR on sv40. Can you give the length and the sequence of the amplicon?
 
-Write a function which have 3 parameters ``sequence``, ``primer_1`` and ``primer_2``
+Write a function which has 3 parameters ``sequence``, ``primer_1`` and ``primer_2`` and returns the amplicon length.
 
-* *We consider only the cases where primer_1 and primer_2 are present in sequence* 
-* *to simplify the exercise, the 2 primers can be read directly on the sv40 sequence.*
+* *We consider only the cases where primer_1 and primer_2 are present in the sequence.*
+* *To simplify the exercise, the 2 primers can be read directly in the sv40 sequence (i.e. no need to reverse-complement).*
 
-test you algorithm with the following primers 
+Test you algorithm with the following primers:
 
 | primer_1 : 5' CGGGACTATGGTTGCTGACT 3'
 | primer_2 : 5' TCTTTCCGCCTCAGAAGGTA 3'
 
-Write the pseudocode before to implement it.
+Write the function in pseudocode before implementing it.
+
 
 | *function amplicon_len(sequence primer_1, primer_2)*
 |      *pos_1 <- find position of primer_1 in sequence*
 |      *pos_2 <- find position of primer_2 in sequence*
 |      *amplicon length <- pos_2 + length(primer_2) - pos_1*
-|      *return amplicon length* 
+|      *return amplicon length*
 
 
 .. literalinclude:: _static/code/amplicon_len.py
@@ -304,44 +305,50 @@ Write the pseudocode before to implement it.
 
 ::
 
-   >>> import sv40 
+   >>> import sv40
    >>> import fasta_to_one_line
-   >>> 
+   >>>
    >>> sequence = fasta_to_one_line(sv40)
    >>> print amplicon_len(sequence, first_primer, second_primer )
    199
-   
-:download:`amplicon_len.py <_static/code/amplicon_len.py>` . 
+
+:download:`amplicon_len.py <_static/code/amplicon_len.py>`.
 
 
 Exercise
 --------
 
-reverse the following sequence "TACCTTCTGAGGCGGAAAGA" (don't compute the complement): ::
+#. Reverse the following sequence ``"TACCTTCTGAGGCGGAAAGA"`` (don't compute the complement).
+
+::
 
    >>> "TACCTTCTGAGGCGGAAAGA"[::-1]
-   or 
+   # or
    >>> s = "TACCTTCTGAGGCGGAAAGA"
-   >>> l = list(s) 
+   >>> l = list(s)
    # take care reverse() reverse a list in place (the method do a side effect and return None ) 
    # so if you don't have a object reference on the list you cannot get the reversed list!
    >>> l.reverse()
    >>> print l
    >>> ''.join(l)
-   or 
+   # or
    >>> rev_s  = reversed(s)
    ''.join(rev_s)
- 
- The most efficient way to reverse a string or a list is the way using the slice. 
+
+ The most efficient way to reverse a string or a list is the way using the slice.
+
+.. #. Using the shorter string  ``s = 'gaattc'`` draw what happens in memory when you reverse ``s``.
+
 
 Exercise
 --------
 
-| The il2_human contains 4 cysteins (C) in positions 9, 78, 125, 145. 
-| We want to generate the sequence of a mutatnt were the cysteins 78 and 125 are replaced by serins (S)
-| Write the pseudocode, before to propose an implementation:
+| The ``il2_human`` sequence contains 4 cysteins (C) in positions 9, 78, 125, 145.
+| We want to generate the sequence of a mutant where the cysteins 78 and 125 are replaced by serins (S)
+| Write the pseudocode, before proposing an implementation:
+
 
-We have to take care of the string numbered vs sequence numbered:
+We have to take care of the difference between Python string numbering and usual position numbering:
 
 | C in seq -> in string
 |     9 -> 8
@@ -350,36 +357,34 @@ We have to take care of the string numbered vs sequence numbered:
 |   145 -> 144
 
 | *generate 3 slices from the il2_human*
-| *head <- from the begining and cut between the first cytein and the second* 
+| *head <- from the begining and cut between the first cystein and the second*
 | *body <- include  the 2nd and 3rd cystein*
-| *tail <- cut after the 3rd cystein until the end* 
-| *replace body cystein by serin* 
+| *tail <- cut after the 3rd cystein until the end*
+| *replace body cystein by serin*
 | *make new sequence with head body_mutate tail*
-  
-il2_human = 
-'MYRMQLLSCIALSLALVTNSAPTSSSTKKTQLQLEHLLLDLQMILNGINNYKNPKLTRMLTFKFYMPKKATELKHLQCLEEELKPLEEVLNLAQSKNFHLRPRDLISNINVIVLELKGSETTFMCEYADETATIVEFLNRWITFCQSIISTLT'
-  
-  
+
+
 ::
 
-   head = il2_human[:77]
-   body = il2_human[77:125]
-   tail = il2_human[126:]
-   body_mutate = body.replace('C', 'S')
-   il2_mutate = head + body_mutate + tail
+    il2_human = 'MYRMQLLSCIALSLALVTNSAPTSSSTKKTQLQLEHLLLDLQMILNGINNYKNPKLTRMLTFKFYMPKKATELKHLQCLEEELKPLEEVLNLAQSKNFHLRPRDLISNINVIVLELKGSETTFMCEYADETATIVEFLNRWITFCQSIISTLT'
+    head = il2_human[:77]
+    body = il2_human[77:125]
+    tail = il2_human[126:]
+    body_mutate = body.replace('C', 'S')
+    il2_mutate = head + body_mutate + tail
 
 Exercise
 --------
 
-Write a function 
+Write a function which:
 
-* which take a sequence as parameter
-* compute the GC%
-* and return it
-* display the results readable for human as a micro report like this:
-  'the sv40 is 5243 bp length and have 40.80% gc' 
-  
-use sv40 sequence to test your function.
+* takes a sequence as parameter;
+* computes the GC%;
+* and returns it;
+* displays the results as a "human-readable" micro report like this:
+  ``'The sv40 is 5243 bp length and has 40.80% gc'``.
+
+Use the sv40 sequence to test your function.
 
 .. literalinclude:: _static/code/gc_percent.py
    :linenos:
@@ -387,14 +392,14 @@ use sv40 sequence to test your function.
 
 ::
 
-   >>> import sv40 
+   >>> import sv40
    >>> import fasta_to_one_line
    >>> import gc_percent
-   >>> 
+   >>>
    >>> sequence = fasta_to_one_line(sv40)
    >>> gc_pc = gc_percent(sequence)
-   >>> report = "the sv40 is {0} bp length and have {1:.2%} gc".format(len(sequence), gc_pc)
+   >>> report = "The sv40 is {0} bp length and has {1:.2%} gc".format(len(sequence), gc_pc)
    >>> print report
-   'the sv40 is 5243 bp length and have 40.80% gc'
-   
+   'The sv40 is 5243 bp length and has 40.80% gc'
+
 :download:`gc_percent.py <_static/code/gc_percent.py>` .