based on http://www.vonloesch.de/filebrowser.html