more merciless refactoring