use shared memory