add variational method