Issue #150; also, starting to move convenience methods out into a separate module