comments and exception added