resolve #23 improve regularity