Rewrote everything =(