Patch pushed as 9e76de0460a02c4129bec9a9e44b4a9c93e090a1 with some modifications. I put "Cage " in the copyright line; tell me if you want to change it. Thanks.