Mehorando o codigo e implementando uso de protocolo