explain reason for fork