Separate gui and engine in mp::create.

Work is still in progress.