Minor
Set protocol shouldn’t have it’s own state, as it will then sometimes not call the other states afterwards