- making Python 3+ compliant
- KeyboardInterrupt now properly handled