Overhauled the whole thing