this is a useful explination kyle