dynamic typing and exception handling