yay for exceptions, much work to do still.