way better gui handling