ex 4.33 - done without test for completeness
ex 4.34 - done without test for completeness