add dist type parameter, fine tune dist types