gui almost/probably complete