In the programming model, a UI flow is the set of tasks that are required to complete a basic financial transaction, including data input, data validation, and interaction with external services. Services provide high-level application functions to support objects such as host communications and printers. Operations manage the operation context and the operation formatter. The context hierarchy stores the data that is required by the services. During the execution of an operation, data is formatted and sent to the services, and then the reply data is unformatted from the service back to the context. The operation formatters build the formatted data that is interchanged with the services and interpret data that is received from the services.