simplify most of the code significantly thanks to version handling code
-rw-r--r-- .gitignore
drwxr-xr-x lib
drwxr-xr-x t