revisited device generator approach: new generator->ctor of simulator

this is now much simpler, and easier to use and handle