reworked exceptions a bit, implemented try/catch/finally