X11 implementation works
Needs a lot of code cleanup though.