kinda buggy but mostly works
yay