basic generator utility