More comments, use logger instead of sys out, use try-with-resource