This implements #18