1. A method comprising: receiving a request from a client device to execute a streaming target program on the client device; determining, by a processor, a state of the client device when requesting to execute the streaming target program; pre-configuring the streaming target program, including breaking up the streaming target program into blocks, based on the state of the device; streaming the blocks to the client device for execution of the streaming target program by the client device.