Separate gui and engine in mp::create.

Some things still need to be moved from gui to engine.