some more exceptions and documentation