1. A method comprising: sending a request from a client device to a streaming server to execute a streaming target program on the client device, the client device including a profile associated with the client device and the streaming target program being fully installed on a clean system and preprocessed to create an index the client device is configured to access; using the index to present a virtual directory structure at the client device; receiving a dependency string of the streaming target program according to the profile associated with the client device; beginning execution of the streaming target program at the client device using the dependency string and the virtual directory structure; receiving additional blocks of the streaming target program according to the profile associated with the client device and interaction between a user of the client device and the streaming target program; continuing execution of the streaming target program at the client device using the additional blocks and the virtual directory structure.