A method of providing selectable media content from a server to a user at a user terminal, the method comprising: retrieving program code from the server, responsive to the user interacting with a communication client application executed at the user terminal; storing variables in a storage means at the user terminal; executing said program code at the user terminal to read said variables to determine the media content to be provided to the user based on said variables; retrieving said determined media content from the server; and providing said media content to the user at the user terminal.