I think you really should read the whole thing