#43 implement categorial distribution