Added SurfaceFactory to create SDL_Surfaces