refactored everything
fixed the worst merge conflict of my life