user_data: if "ptr" is user data then "*ptr" is user data