Compiles, not tested.