Designing generator classes. Implementations will be at last once class structures are finalised.