slightly modified source file