more for #15
close #15 and #26, touching quite a bit of #32
tests compile