Abstracting graphics and data source

Now we may have different implementations of data source (dos/amiga/custom) and graphics engines (SDL/native).
Thanks, I checked again and it does indeed make sense.