implemented and tested C4_1 and C4_2. implemented C4_3, but still bugged