merge rich, closes #21.