receiver must be a pointer