refactored and added some ciphers