added decipher trait