finish p. 57, need to test this stuff