need to fix up exception stuff