1. A method comprising: starting execution of a first application, which is stream-enabled, using a downloaded part of the first application that is contained in a software container, when entire parts of first application have not been downloaded; determining whether a trigger to pause the first application is detected while the first application is being executed; if it is determined that the trigger is detected, pausing the first application and starting execution of a second application; determining whether execution of the second application ends, if it is determined that execution of the second application ends, resuming execution of the first application; determining whether one or more blocks of the first application are needed to be downloaded to continue execution of the first application while the first application is being executed using the download part of the first application; if it is determined that the one or more blocks of the first application are needed to be downloaded, downloading the one or more blocks of the first application and continuing execution of the first application using the one or more downloaded blocks of the first application.