unfortunately macro based multi threading and multi processing both seems confusing at best, brittle / fragile at times.