P06: Done
P06: simplified tests
P07: Done
P03: using 'case if'
P06: typo in spec string
P08: Done