diff --git a/cloudsigma2/src/main/java/org/jclouds/cloudsigma2/CloudSigma2Api.java b/cloudsigma2/src/main/java/org/jclouds/cloudsigma2/CloudSigma2Api.java
index dac0c67..b5b0418 100644
--- a/cloudsigma2/src/main/java/org/jclouds/cloudsigma2/CloudSigma2Api.java
+++ b/cloudsigma2/src/main/java/org/jclouds/cloudsigma2/CloudSigma2Api.java
@@ -302,8 +302,8 @@
    @Path("/libdrives/{uuid}/action/?do=clone")
    @SelectJson("objects")
    @OnlyElement
-   LibraryDrive cloneLibraryDrive(@PathParam("uuid") String uuid
-         , @Nullable @BinderParam(BindLibraryDriveToJson.class) LibraryDrive libraryDrive);
+   LibraryDrive cloneLibraryDrive(@PathParam("uuid") String uuid,
+         @Nullable @BinderParam(BindLibraryDriveToJson.class) LibraryDrive libraryDrive);
 
    /**
     * Gets the list of servers to which the authenticated user has access.
@@ -391,8 +391,8 @@
    @Named("server:editServer")
    @PUT
    @Path("/servers/{uuid}/")
-   ServerInfo editServer(@PathParam("uuid") String uuid
-         , @BinderParam(BindServerInfoToJsonRequest.class) ServerInfo server);
+   ServerInfo editServer(@PathParam("uuid") String uuid,
+         @BinderParam(BindServerInfoToJsonRequest.class) ServerInfo server);
 
    /**
     * Deletes a single server.
@@ -613,8 +613,8 @@
    @Named("fwpolicy:editFirewallPolicy")
    @PUT
    @Path("/fwpolicies/{uuid}/")
-   FirewallPolicy editFirewallPolicy(@PathParam("uuid") String uuid
-         , @BinderParam(BindFirewallPolicyToJsonRequest.class) FirewallPolicy firewallPolicy);
+   FirewallPolicy editFirewallPolicy(@PathParam("uuid") String uuid,
+         @BinderParam(BindFirewallPolicyToJsonRequest.class) FirewallPolicy firewallPolicy);
 
    /**
     * Deletes a single firewall policy.
@@ -695,8 +695,8 @@
    @Named("vlan:listVLANInfo")
    @PUT
    @Path("/vlans/{uuid}/")
-   VLANInfo editVLAN(@PathParam("uuid") String uuid
-         , @BinderParam(BindVLANToJsonRequest.class) VLANInfo vlanInfo);
+   VLANInfo editVLAN(@PathParam("uuid") String uuid,
+       @BinderParam(BindVLANToJsonRequest.class) VLANInfo vlanInfo);
 
    /**
     * Gets the list of IPs to which the authenticated user has access.
diff --git a/cloudsigma2/src/test/java/org/jclouds/cloudsigma2/CloudSigma2ApiExpectTest.java b/cloudsigma2/src/test/java/org/jclouds/cloudsigma2/CloudSigma2ApiExpectTest.java
index 82e77ff..9afbd7b 100644
--- a/cloudsigma2/src/test/java/org/jclouds/cloudsigma2/CloudSigma2ApiExpectTest.java
+++ b/cloudsigma2/src/test/java/org/jclouds/cloudsigma2/CloudSigma2ApiExpectTest.java
@@ -285,9 +285,9 @@
    @Test
    public void testDeleteDrives() throws Exception {
       List<String> deleteList = ImmutableList.of(
-            "b137e217-42b6-4ecf-8575-d72efc2d3dbd"
-            , "e035a488-8587-4a15-ab25-9b7343236bc9"
-            , "feded33c-106f-49fa-a1c4-be5c718ad1b5");
+            "b137e217-42b6-4ecf-8575-d72efc2d3dbd",
+            "e035a488-8587-4a15-ab25-9b7343236bc9",
+            "feded33c-106f-49fa-a1c4-be5c718ad1b5");
 
       CloudSigma2Api api = requestSendsResponse(
             deleteBuilder()
@@ -515,8 +515,8 @@
       CloudSigma2Api api = requestSendsResponse(
             postBuilder()
                   .endpoint(endpoint + "servers/")
-                  .payload(payloadFromResourceWithContentType("/servers-create-request.json"
-                        , MediaType.APPLICATION_JSON))
+                  .payload(payloadFromResourceWithContentType("/servers-create-request.json",
+                        MediaType.APPLICATION_JSON))
                   .build(),
             responseBuilder()
                   .payload(payloadFromResourceWithContentType("/servers-single.json", MediaType.APPLICATION_JSON))
@@ -1349,11 +1349,11 @@
             new Tag.Builder()
                   .name("TagCreatedWithResource")
                   .resources(ImmutableList.of(
-                        new TagResource.Builder().uuid("61bcc398-c034-42f1-81c9-f6d7f62c4ea0").build()
-                        , new TagResource.Builder().uuid("8ac6ac13-a55e-4b01-bcf4-5eed7b60a3ed").build()
-                        , new TagResource.Builder().uuid("3610d935-514a-4552-acf3-a40dd0a5f961").build()
-                        , new TagResource.Builder().uuid("185.12.6.183").build()
-                        , new TagResource.Builder().uuid("96537817-f4b6-496b-a861-e74192d3ccb0").build()
+                        new TagResource.Builder().uuid("61bcc398-c034-42f1-81c9-f6d7f62c4ea0").build(),
+                        new TagResource.Builder().uuid("8ac6ac13-a55e-4b01-bcf4-5eed7b60a3ed").build(),
+                        new TagResource.Builder().uuid("3610d935-514a-4552-acf3-a40dd0a5f961").build(),
+                        new TagResource.Builder().uuid("185.12.6.183").build(),
+                        new TagResource.Builder().uuid("96537817-f4b6-496b-a861-e74192d3ccb0").build()
                   ))
                   .build());
       assertNotNull(result);
diff --git a/cloudsigma2/src/test/java/org/jclouds/cloudsigma2/functions/FirewallPolicyToJsonTest.java b/cloudsigma2/src/test/java/org/jclouds/cloudsigma2/functions/FirewallPolicyToJsonTest.java
index 5e7d50c..ff1e9d7 100644
--- a/cloudsigma2/src/test/java/org/jclouds/cloudsigma2/functions/FirewallPolicyToJsonTest.java
+++ b/cloudsigma2/src/test/java/org/jclouds/cloudsigma2/functions/FirewallPolicyToJsonTest.java
@@ -60,30 +60,30 @@
                         .comment("Drop traffic from the VM to IP address 23.0.0.0/32")
                         .direction(FirewallDirection.OUT)
                         .destinationIp("23.0.0.0/32")
-                        .build()
-                  , new FirewallRule.Builder()
+                        .build(),
+                 new FirewallRule.Builder()
                   .action(FirewallAction.ACCEPT)
                   .comment("Allow SSH traffic to the VM from our office in Dubai")
                   .direction(FirewallDirection.IN)
                   .destinationPort("22")
                   .ipProtocol(FirewallIpProtocol.TCP)
                   .sourceIp("172.66.32.0/24")
-                  .build()
-                  , new FirewallRule.Builder()
+                  .build(),
+                  new FirewallRule.Builder()
                   .action(FirewallAction.DROP)
                   .comment("Drop all other SSH traffic to the VM")
                   .direction(FirewallDirection.IN)
                   .destinationPort("22")
                   .ipProtocol(FirewallIpProtocol.TCP)
-                  .build()
-                  , new FirewallRule.Builder()
+                  .build(),
+                  new FirewallRule.Builder()
                   .action(FirewallAction.DROP)
                   .comment("Drop all UDP traffic to the VM, not originating from 172.66.32.55")
                   .direction(FirewallDirection.IN)
                   .ipProtocol(FirewallIpProtocol.UDP)
                   .sourceIp("!172.66.32.55/32")
-                  .build()
-                  , new FirewallRule.Builder()
+                  .build(),
+                  new FirewallRule.Builder()
                   .action(FirewallAction.DROP)
                   .comment("Drop any traffic, to the VM with destination port not between 1-1024")
                   .direction(FirewallDirection.IN)
diff --git a/cloudsigma2/src/test/java/org/jclouds/cloudsigma2/functions/ServerInfoToJsonTest.java b/cloudsigma2/src/test/java/org/jclouds/cloudsigma2/functions/ServerInfoToJsonTest.java
index 20b607e..d09d069 100644
--- a/cloudsigma2/src/test/java/org/jclouds/cloudsigma2/functions/ServerInfoToJsonTest.java
+++ b/cloudsigma2/src/test/java/org/jclouds/cloudsigma2/functions/ServerInfoToJsonTest.java
@@ -71,8 +71,8 @@
                               .resourceUri(new URI("/api/2.0/drives/ae78e68c-9daa-4471-8878-0bb87fa80260/"))
                               .uuid("ae78e68c-9daa-4471-8878-0bb87fa80260")
                               .build())
-                        .build()
-                  , new ServerDrive.Builder()
+                        .build(),
+                  new ServerDrive.Builder()
                   .bootOrder(1)
                   .deviceChannel("0:0")
                   .deviceEmulationType(DeviceEmulationType.VIRTIO)
diff --git a/cloudsigma2/src/test/java/org/jclouds/cloudsigma2/functions/TagToJsonTest.java b/cloudsigma2/src/test/java/org/jclouds/cloudsigma2/functions/TagToJsonTest.java
index 37cf75f..34f21ff 100644
--- a/cloudsigma2/src/test/java/org/jclouds/cloudsigma2/functions/TagToJsonTest.java
+++ b/cloudsigma2/src/test/java/org/jclouds/cloudsigma2/functions/TagToJsonTest.java
@@ -57,14 +57,14 @@
             .resources(ImmutableList.of(
                   new TagResource.Builder()
                         .uuid("96537817-f4b6-496b-a861-e74192d3ccb0")
-                        .build()
-                  , new TagResource.Builder()
+                        .build(),
+                  new TagResource.Builder()
                   .uuid("61bcc398-c034-42f1-81c9-f6d7f62c4ea0")
-                  .build()
-                  , new TagResource.Builder()
+                  .build(),
+                  new TagResource.Builder()
                   .uuid("3610d935-514a-4552-acf3-a40dd0a5f961")
-                  .build()
-                  , new TagResource.Builder()
+                  .build(),
+                  new TagResource.Builder()
                   .resourceType(TagResourceType.IPS)
                   .resourceUri(new URI("/api/2.0/ips/185.12.6.183/"))
                   .uuid("185.12.6.183")
diff --git a/cloudsigma2/src/test/java/org/jclouds/cloudsigma2/functions/VLANInfoToJsonTest.java b/cloudsigma2/src/test/java/org/jclouds/cloudsigma2/functions/VLANInfoToJsonTest.java
index 8f493ce..4e6bc2d 100644
--- a/cloudsigma2/src/test/java/org/jclouds/cloudsigma2/functions/VLANInfoToJsonTest.java
+++ b/cloudsigma2/src/test/java/org/jclouds/cloudsigma2/functions/VLANInfoToJsonTest.java
@@ -56,8 +56,8 @@
                      new Server.Builder()
                            .uuid("81f911f9-5152-4328-8671-02543bafbd0e")
                            .resourceUri(new URI("/api/2.0/servers/81f911f9-5152-4328-8671-02543bafbd0e/"))
-                           .build()
-                     , new Server.Builder()
+                           .build(),
+                     new Server.Builder()
                      .uuid("19163e1a-a6d6-4e73-8087-157dd302c373")
                      .resourceUri(new URI("/api/2.0/servers/19163e1a-a6d6-4e73-8087-157dd302c373/"))
                      .build()
diff --git a/profitbricks-rest/src/main/java/org/apache/jclouds/profitbricks/rest/features/FirewallApi.java b/profitbricks-rest/src/main/java/org/apache/jclouds/profitbricks/rest/features/FirewallApi.java
index 357fed0..6edb61b 100644
--- a/profitbricks-rest/src/main/java/org/apache/jclouds/profitbricks/rest/features/FirewallApi.java
+++ b/profitbricks-rest/src/main/java/org/apache/jclouds/profitbricks/rest/features/FirewallApi.java
@@ -124,8 +124,8 @@
                      "servers", "serverId"
                   ),
                   "nics", "nicId"
-               )
-            , type);
+               ),
+            type);
          } finally {
             if (stream != null)
                stream.close();
