rewriting this soon lol