more flexable cipher modules and functions.