make all limits optional, for #18, for #20