tested generic new function generic system and appears to work as intended