Added 3c & 3d, slightly modified 3a & 3b