Reimplement Serializable, so now it behaves much nicer for class user and it's a bit cleaner.
Introduce Protocol name space.
Throw Error<Serializable> in SerializableTuple instead of Error<SerializableError>, because it's more convinient.
Use ListBox instead on TreeView in MainWindow class. Also extend Service with new signals.