switch to shared_memory abstraction