1-variant and 3-variant complete, 12-variant implementation done but needs tests.
Addresses #11 (closed)