Closes #88 (closed). I'm not sure about the naming of a class which holds the implementation. @jbigot @ksieroci feel free to discuss the names and implementation.