A mobile device comprising: a network interface; a processor coupled to the network interface; and a memory coupled to the processor and configured to store a plurality of instructions executable by the processor, the instructions including instructions for a superblock application having instructions for a function block included therein, wherein the function block and the superblock application occupy the same memory space in the memory, wherein the function block is configured to provide a plurality of functions that are accessible to the superblock application via an application programming interface, API, of the function block, wherein the functions are provided within the superblock application itself and are accessible within the superblock application without switching context to another application on the mobile device, wherein the superblock application cannot access at least one of the functions of the function block without providing the function block with an authorization code, wherein the instructions further include: providing, by the function block, video data to the superblock application for rendering by the superblock application, wherein the superblock application renders the video data in a video window that is superimposed on a display of the superblock application, and wherein both the video window and at least a portion of the display of the superblock application are simultaneously viewable; determining, by the function block, that one of the plurality of functions requires access to an external service not present on the mobile device; and updating, based on the determination that one of the plurality of functions requires access to an external service not present on the mobile device, a capability list to identify the external service as an available capability. a network interface; a processor coupled to the network interface; and a memory coupled to the processor and configured to store a plurality of instructions executable by the processor, the instructions including instructions for a superblock application having instructions for a function block included therein, wherein the function block and the superblock application occupy the same memory space in the memory, wherein the function block is configured to provide a plurality of functions that are accessible to the superblock application via an application programming interface, API, of the function block, wherein the functions are provided within the superblock application itself and are accessible within the superblock application without switching context to another application on the mobile device, wherein the superblock application cannot access at least one of the functions of the function block without providing the function block with an authorization code, wherein the instructions further include: providing, by the function block, video data to the superblock application for rendering by the superblock application, wherein the superblock application renders the video data in a video window that is superimposed on a display of the superblock application, and wherein both the video window and at least a portion of the display of the superblock application are simultaneously viewable; determining, by the function block, that one of the plurality of functions requires access to an external service not present on the mobile device; and updating, based on the determination that one of the plurality of functions requires access to an external service not present on the mobile device, a capability list to identify the external service as an available capability. providing, by the function block, video data to the superblock application for rendering by the superblock application, wherein the superblock application renders the video data in a video window that is superimposed on a display of the superblock application, and wherein both the video window and at least a portion of the display of the superblock application are simultaneously viewable; determining, by the function block, that one of the plurality of functions requires access to an external service not present on the mobile device; and updating, based on the determination that one of the plurality of functions requires access to an external service not present on the mobile device, a capability list to identify the external service as an available capability.