proper exception handling
more exception handling