Implements #15 and #16