Complete rework, like A LOT of changes