added geometric distribution