my modified version of difmplay