refactoring: create named classes for different locus functionality