finished pointers and dynamic allocation