http://laurikari.net/tre/