untested multi-threaded encryption included