Implementation of user agent.