Some refactoring (broken)...