stole atomic abstraction i wrote for weenix