it's kinda crude and buggy but some things might just work?
also im lazy and dont want to redo last 2 commits because i wrote a ton into last one :(