updated virtualbox compute-basics example
diff --git a/compute-basics/README.md b/compute-basics/README.md
index ac70c09..9f31f67 100755
--- a/compute-basics/README.md
+++ b/compute-basics/README.md
@@ -1,47 +1,75 @@
 # compute-basics
 
-This is a simple example command line client that creates a node in a [ComputeService](http://code.google.com/p/jclouds/wiki/ComputeGuide) provider and executes "echo hello" on everything in its group.
+This is a simple example command line client that creates a node in a [ComputeService](http://www.jclouds.org/documentation/userguide/compute/) provider and executes `echo hello` on everything in its group.
 
 ## Build
 
-Ensure you have maven 3.02 or higher installed, then execute 'mvn install' to build the example.  Note you also need an ssh key setup in your home directory.
+Ensure you have **maven 3.02** or higher installed, then execute `mvn install` to build the example. 
+Note you also need an ssh key setup in your home directory.
 
-If you don't already have ~/.ssh/id_rsa present, generate a key with the command 'ssh-keygen -t rsa' and leave the passphrase blank.
+If you don't already have `~/.ssh/id_rsa` present, generate a key with the command `ssh-keygen -t rsa` and leave the passphrase blank.
 
 ## Run
 
-Invoke the jar, passing the name of the cloud provider you with to access (ex. aws-ec2, gogrid), identity (ex. accesskey, username), credential (ex. secretkey, password), then the name of the group you'd like to add the node to. The 4th parameter must be add, exec or destroy, noting that destroy will destroy all nodes in the group. If the 4th parameter is exec, you must quote a command to execute across the group of nodes.
+Invoke the jar, passing the name of the cloud provider you with to access (ex. aws-ec2, gogrid), identity (ex. accesskey, username), credential (ex. secretkey, password), then the name of the group you'd like to add the node to. 
 
-java -jar target/compute-basics-jar-with-dependencies.jar provider identity credential mygroup add
+The 4th parameter represents the **action** you want to run. Supported actions are:
 
-java -jar target/compute-basics-jar-with-dependencies.jar provider identity credential mygroup add
+- add
+- exec 
+- destroy
 
-java -jar target/compute-basics-jar-with-dependencies.jar provider identity credential mygroup exec "echo hello"
+Noting that **destroy** will destroy all nodes in the group. If the 4th parameter is exec, you must quote a command to execute across the group of nodes.
 
-java -jar target/compute-basics-jar-with-dependencies.jar provider identity credential mygroup destroy
+To add a node to the group *mygroup*:
 
-Ex. for Amazon EC2
+    java -jar target/compute-basics-jar-with-dependencies.jar provider identity credential mygroup add
+    
+To execute a command to all nodes of the group *mygroup*:
 
-java -jar target/compute-basics-jar-with-dependencies.jar aws-ec2 accesskey secretkey mygroup add
+    java -jar target/compute-basics-jar-with-dependencies.jar provider identity credential mygroup exec "echo hello"
 
-Ex. for HP Cloud
+To destroy all nodes of the group *mygroup*:
 
-java -jar target/compute-basics-jar-with-dependencies.jar hpcloud-compute tenantId:accesskey secretkey mygroup add
+    java -jar target/compute-basics-jar-with-dependencies.jar provider identity credential mygroup destroy
 
-Ex. for TryStack.org
+### Amazon EC2
 
-java -jar target/compute-basics-jar-with-dependencies.jar trystack-nova tenantId:user password mygroup add
+    java -jar target/compute-basics-jar-with-dependencies.jar aws-ec2 \
+          accesskey secretkey mygroup add
 
-Ex. for your own OpenStack Nova
+### HP Cloud
 
-java -Dopenstack-nova.image-id=RegionOne/15 -Dopenstack-nova.login-user=ubuntu -Djclouds.trust-all-certs=true -Djclouds.keystone.credential-type=passwordCredentials -Dopenstack-nova.endpoint=https://keystone:35357 -jar target/compute-basics-jar-with-dependencies.jar openstack-nova tenantId:user password mygroup add
+    java -jar target/compute-basics-jar-with-dependencies.jar hpcloud-compute \
+          tenantId:accesskey secretkey mygroup add
 
-Ex. for Virtualbox
-java -jar target/compute-basics-jar-with-dependencies.jar virtualbox vboxwebsrv-username vboxwebsrv-password mygroup add
+### TryStack.org
 
-Ex. for your own OpenStack Nova emulating EC2
+    java -jar target/compute-basics-jar-with-dependencies.jar trystack-nova tenantId:user password mygroup add
 
-java -Dopenstack-nova-ec2.image-id=nova/ami-00000009 -Dopenstack-nova-ec2.login-user=ubuntu -Djclouds.trust-all-certs=true -Dopenstack-nova-ec2.endpoint=https://novahost/services/Cloud -jar target/compute-basics-jar-with-dependencies.jar openstack-nova-ec2 tenantId:accesskey secretkey mygroup add
+### Your own OpenStack Nova
+
+    java -jar target/compute-basics-jar-with-dependencies.jar openstack-nova \
+         -Dopenstack-nova.image-id=RegionOne/15 \
+         -Dopenstack-nova.login-user=ubuntu \
+         -Djclouds.trust-all-certs=true \
+         -Djclouds.keystone.credential-type=passwordCredentials \
+         -Dopenstack-nova.endpoint=https://keystone:35357 \
+          tenantId:user password mygroup add
+
+### Virtualbox
+
+    java -jar target/compute-basics-jar-with-dependencies.jar virtualbox \ 
+          your-username your-password mygroup add
+
+### Your own OpenStack Nova emulating EC2
+
+    java -jar target/compute-basics-jar-with-dependencies.jar openstack-nova-ec2 \
+         -Dopenstack-nova-ec2.image-id=nova/ami-00000009 \
+         -Dopenstack-nova-ec2.login-user=ubuntu \
+         -Djclouds.trust-all-certs=true \
+         -Dopenstack-nova-ec2.endpoint=https://novahost/services/Cloud \
+          tenantId:accesskey secretkey mygroup add
 
 ## License
 
diff --git a/compute-basics/pom.xml b/compute-basics/pom.xml
index 73f600f..92bd529 100644
--- a/compute-basics/pom.xml
+++ b/compute-basics/pom.xml
@@ -47,7 +47,7 @@
       <dependency>
         <groupId>org.jclouds.labs</groupId>
         <artifactId>virtualbox</artifactId>
-        <version>1.5.4</version>
+        <version>1.6.0-SNAPSHOT</version>
       </dependency>      
       <!-- note that if you want a smaller distribution
          remove the above dependency and place something 
diff --git a/compute-basics/src/main/java/org/jclouds/examples/compute/basics/MainApp.java b/compute-basics/src/main/java/org/jclouds/examples/compute/basics/MainApp.java
index 0f6b4c7..2e9709c 100644
--- a/compute-basics/src/main/java/org/jclouds/examples/compute/basics/MainApp.java
+++ b/compute-basics/src/main/java/org/jclouds/examples/compute/basics/MainApp.java
@@ -28,6 +28,7 @@
 import static org.jclouds.aws.ec2.reference.AWSEC2Constants.PROPERTY_EC2_CC_AMI_QUERY;
 import static org.jclouds.compute.config.ComputeServiceProperties.TIMEOUT_SCRIPT_COMPLETE;
 import static org.jclouds.compute.options.TemplateOptions.Builder.overrideLoginCredentials;
+import static org.jclouds.compute.options.TemplateOptions.Builder.overrideLoginUser;
 import static org.jclouds.compute.options.TemplateOptions.Builder.runScript;
 import static org.jclouds.compute.predicates.NodePredicates.TERMINATED;
 import static org.jclouds.compute.predicates.NodePredicates.inGroup;
@@ -117,6 +118,7 @@
       }
       
       String minRam = System.getProperty("minRam");
+      String loginUser = System.getProperty("loginUser", "toor");
       
       // note that you can check if a provider is present ahead of time
       checkArgument(contains(allKeys, provider), "provider %s not in supported list: %s", provider, allKeys);
@@ -145,8 +147,11 @@
             Statement bootInstructions = AdminAccess.standard();
 
             // to run commands as root, we use the runScript option in the template.
-            templateBuilder.options(runScript(bootInstructions));
-
+            if(provider.equalsIgnoreCase("virtualbox"))
+               templateBuilder.options(overrideLoginUser(loginUser).runScript(bootInstructions));
+            else
+               templateBuilder.options(runScript(bootInstructions));
+            
             NodeMetadata node = getOnlyElement(compute.createNodesInGroup(groupName, 1, templateBuilder.build()));
             System.out.printf("<< node %s: %s%n", node.getId(),
                   concat(node.getPrivateAddresses(), node.getPublicAddresses()));