a basic generator