user agent and many more improvements