even more gui logic