Start refactoring, use command list to manage protocol reply and the retrasmission.