without exception handling