refactoring, random progress