design improvements for #2