added gobject boilerplate code