using synchronous generators