bugfix: spark recursion; transactional assignment