extracts the redirect object and controller into its own generator

+ kickstart calls the new generator
+ adds generator test