reimplement variation with real gamma rates
improve unit tests