some more docs and experimenting with exceptions.