implemented the retro gen stuff, needs testing