Convert the plugins engine to a Gobject and move to own file.