initial work on #15
initial work for #20