modified omnifunc