more dynamic allocation work