Die wesentlichen Teile sind von hier: https://gist.github.com/stevenschobert/f559be35190bd432fcce8f4febd713ef