Implement blit on commit

Targets #159
Why not perform a direct function pointer cast?
It can't be because of the interace compatability. The method is gonna change anyways.