can no longer send more data than the protocol allows; added appropriate throws declarations