single threaded rules