generator basics