exception and comments added