refactor and get ready for offline compressing

It would be better to have a JAC base exception and all those others extending it so if user wants to deal with JAC it would only put that base exception in it's try/except block