several design improvements