Can you explain the logic here? I am not sure why we need a callback interface?