ugly, but tested.