first run at processing model
consistent use of user agent vs browser
descriptive ids