using pointers
update
update cipher
update