added logical generator