this has been discussed at length many times....