refactor the whole label business