1. A method comprising: receiving, by a server, a first request from a first user of a browser program on a first device to initiate a first spreadsheet session and access a spreadsheet; providing, by the server and based on the first request, a portion of a client engine having a functionality associated with spreadsheets to the browser program on the first device, wherein in absence of the first request, the server does not provide the portion of the client engine having the functionality associated with spreadsheets to the browser program on the first device; providing, by the portion of the client engine and based on the first request, the first spreadsheet session to the browser program on the first device; receiving, by the server, a spreadsheet function created by the first user, the spreadsheet function being received through the first spreadsheet session at a first interface and being associated with the spreadsheet; providing, by the server, information associated with the spreadsheet function to a second user of the browser program on a second device, the information associated with the spreadsheet function being provided using a second interface; receiving, by the server, a second request from the second user to initiate a second spreadsheet session and access the spreadsheet and to import the spreadsheet function into the second spreadsheet session associated with the second user; providing, by the server and based on the second request, the portion of the client engine having the functionality associated with spreadsheets to the browser program on the second device, wherein in absence of the second request, the server does not provide the portion of the client engine having the functionality associated with spreadsheets to the browser program on the second device; and providing, by the portion of the client engine and based on the second request, the second spreadsheet session and the spreadsheet function to the browser program on the second device.