refactor allocator

- allocator can be on the stack
adding header
adding oom callback