cipher.rb works for basic cases. need to test more and do simple error handling.