working on variations, tests are passing