Using pointers instead of shared ptr to make sure we control when we create / free the memory