implementing (some gui + serial backend)