gtk+ port
a work in progress

