doesnt need to be a pointer