labeller, refactoring, everything tested