client modified, all protocol implemented ROUGHLY.