add memory ordering