Initial generation, not nearly working yet