split labeller into several classes and made static methods instance