seems like it should be an assertion rather than a guard?