adding Doug Lea's allocator. add useful macroses