correcting bad design regarding exceptions