labels, some refactoring, better placement