diff --git a/README.md b/README.md
index 7898947..3ca31c0 100644
--- a/README.md
+++ b/README.md
@@ -93,14 +93,12 @@ Who is who in **bin** directory:
- `eman MODULE` shortcut for `erl -man MODULE` (displays the manual page for the Erlang module MODULE)
- `erun MODULE ARG1 ... ARGN` erlangish `go run`
- `g+ WHAT` recursively grep current directory
+- `gen WHAT` generate some code for me (html boilerplate, perl/go snippets, etc)
- `git+ MESSAGE` git: commit and push to master
-- `go+` go snippet
- `h+` transform line to heading
- `hg+ MESSAGE` hg: commit and push to master
-- `html+` html boilerplate
- `lc+` to lowercase
- `nobs+` is taken from plan9 `nobs` (it removes all backspace characters and the characters that precede them)
-- `perl+` perl boilerplate (shebang, `use strict` etc)
- `put+ BROWSER` regular `Put` plus reload active tab in browser: `ff` | `ch` | `sa`
- `s-` remove leading whitespace
- `s2t N_SPACES` spaces to tabs (default: 4 spaces to 1 tab)
diff --git a/bin/gen b/bin/gen
new file mode 100755
index 0000000..3b80a87
--- /dev/null
+++ b/bin/gen
@@ -0,0 +1,61 @@
+#!/usr/bin/env bash
+
+want="$1"
+
+## HTML
+## -----------------------------------------------------------------------------
+
+if [ $want == 'html' ] || [ $want == '!' ]; then
+cat << 'HTML'
+
+
+
+
+ title
+
+
+
+
+
+
+
+
+HTML
+fi
+
+## PERL
+## -----------------------------------------------------------------------------
+
+if [ $want == 'perl' ] || [ $want == 'pl' ]; then
+cat << 'PERL'
+#!/usr/bin/env perl
+
+use strict;
+use warnings;
+use feature 'say';
+use experimental 'signatures';
+
+sub main () {
+
+}
+
+main();
+PERL
+fi
+
+## GO
+## -----------------------------------------------------------------------------
+
+if [ $want == 'go' ]; then
+cat << 'GO'
+package main
+
+import (
+ "fmt"
+)
+
+func main() {
+
+}
+GO
+fi
diff --git a/bin/go+ b/bin/go+
deleted file mode 100755
index 58cb2a6..0000000
--- a/bin/go+
+++ /dev/null
@@ -1,13 +0,0 @@
-#!/usr/bin/env bash
-
-cat << 'GO'
-package main
-
-import (
- "fmt"
-)
-
-func main() {
-
-}
-GO
diff --git a/bin/html+ b/bin/html+
deleted file mode 100755
index 5d18107..0000000
--- a/bin/html+
+++ /dev/null
@@ -1,16 +0,0 @@
-#!/usr/bin/env bash
-
-cat << 'HTML'
-
-
-
-
- title
-
-
-
-
-
-
-
-HTML
diff --git a/bin/perl+ b/bin/perl+
deleted file mode 100755
index 3007514..0000000
--- a/bin/perl+
+++ /dev/null
@@ -1,19 +0,0 @@
-#!/usr/bin/env perl
-
-$template = <<'TMP';
-#!/usr/bin/env perl
-
-use strict;
-use warnings;
-use feature 'say';
-use experimental 'signatures';
-
-sub main {
-
-}
-
-main();
-
-TMP
-
-print $template;