it might be okay as is here, but it's hard to read with exception logic