rework dispatching, add ShmBuffer