done without exception and comments