Made by Remi Rampin | Heavily inspired by Koen van Gilst's version | source on GitHub