implement some gui elements