Corrections after feedback from Aaron for P3, P9 and P12
P3 added. P9 was wronlgy named P3. __remove_whitespaces() removed. P12 corrected.