diff --git a/w2v-server.pl b/w2v-server.pl
index b1ca43a..2b8c35d 100755
--- a/w2v-server.pl
+++ b/w2v-server.pl
@@ -100,7 +100,7 @@
 
 if($opt_G) {
   print "Filtering garbage\n";
-} => 'js';
+  filter_garbage();
 }
 
 get '*/js/*' => sub {
@@ -108,7 +108,7 @@
 	my $url = $c->req->url;
 	$url =~ s@/derekovecs@@g;
   $c->app->log->info("GET: " . $url);
-} => 'css';
+	$c->reply->static($url);
 } => 'js';
 
 get '*/css/*' => sub {
@@ -194,22 +194,22 @@
   return $spcache{$word};
 }
 
-} => 'getClassicCollocators1';
+post '/derekovecs/getVecsByRanks' => sub {
   my $self = shift;
   my $vec = getVecs($self->req->json);
   $self->render(json => $vec);
 };
-} => 'getClassicCollocators';
+
 any '*/getClassicCollocators' => sub {
   my $self = shift;
   $self->render(data => getClassicCollocatorsCached($self, getWord($self->param("w") ? $self->param("w") : $self->req->json)), format=>'json');
 } => 'getClassicCollocators1';
-} => 'getBiggestVocabDistances1';
+
 any '/getClassicCollocators' => sub {
   my $self = shift;
   $self->render(data => getClassicCollocatorsCached($self, getWord($self->param("w") ? $self->param("w") : $self->req->json)), format=>'json');
 } => 'getClassicCollocators';
-} => 'getBiggestVocabDistances';
+
 any '/getBiggestVocabDistances' => sub {
   my $self = shift;
   $self->render(data => getBiggestMergedDifferences(), format=>'json');
@@ -332,7 +332,7 @@
     }
     chop $csv_data;
     chop $csv_data;
-} => "paradigmaticAndSyntagmaticNbs";
+    $csv_data .= "\n";
     return $c->render(text=>$csv_data);
   } else {
     my $distantWords="";
