encapsulate the group processing in an abstract class
use smaller points
removing distribution graph