this methods should be in label::base given the calcuations involved
refactoring some methods to simplify batch class