use logback for proper logging; do a better job of catching exceptions