Arbitrary categories work. Closes #10.