fix #104 and added Cairo

ref discussions in #103

Also added `Cairo`.