added modes.py for handling extra encryption/decryption modes