update documents. cleanup code
dependency fixes. more informative exception