checked everything but read/write guard