made distribute abstract, implemented isBetter() and toString()