threading around
Some refactoring, not sure if it works, but I will test as soon as I get to the LGS