it's a bit buggy but i noticed that this project was overcomplicated and decided to simplify it a ton