Could you talk about the design pattern here? That one has to provide a likelihood instance?