4th time refactoring is the charm, right?