add log prob function