Refactoring, more testing, basically does the same thing.