allocator implies constant flags
remove origin & optimize merge (issue #75)