Refactored all the generators into their own classes.