add initial gui implementation