adding differenc functionality