some more stuff and exceptions, better coding patterns
some improvements