this is terrible just rewrite the whole thing and don't forget sources woooweeee