stack now both single and multi-threaded
need to develop a good exit strategy for failing decodes...