Reworked the whole thing.