If this method never returns null, we should probably document what exceptions it throws.