Generators ~ Everything You Need to Know about Generators