editted to make it better