Changed to pointers instead of concrete