updated and renamed because of forking from kroppzeug