More work GUI and Protocol #1 #2 #3