Reimplement IGraphics
Rethinking several aspects, branching