Improved conditional generating