improved generator