- When the last call (the one which makes the receiver get the EOM) generates multiple rings, the second ring is seen as the first ring of the first call in a new message. See if there's a way to improve that. - Use lists for the currently received symbols and signals instead of a single string for the received message. This would make it easier to print partial results. - Consider making Modem.py and MorseTranslator.py independent packages. - Add a better command line argument parsing for the transmit.py and receive.py programs, or even better unify them in a savemysugar.py program. - Do not use Modem.py directly in the transceiver class but instead use a generic transmitting/receiving back-end in order to support other transmission mechanisms or telephony frameworks with python bindings (e.g. freesmartphone.org).