source is linked at the bottom. much of it was written in elm and i no longer understand how any of it works.