still getting uncaught exceptions, but looks like it's working